Nullzeiger-Ausnahme - Abrufen des EditText-Werts

Dies ist meine erste Frage hier. Ich werde mich im Voraus entschuldigen, wenn ich diese Frage nicht sehr gut gestellt habe. Ich habe mir andere Fragen angeschaut, die meinem Problem ähneln, aber ich habe keine gute Lösung gefunden, um das zu erfüllen, was in meinem Programm vor sich geht.

Mein Problem ist also, dass ich versuche, einer Variablen mit dem Namen, einen Wert zuzuweisen.num1 Von meinemEditText feld genannt,num1TextField, aber ich habe noch kein Glück.

Das Segment in meiner Java-Datei, das die Ausnahme auslöst, ist:

EditText num1Field = (EditText)v.findViewById(R.id.num1TextField);
num1 = num1Field.getText().toString();

Ich freue mich über jeden Beitrag zu diesem Problem im Voraus.

Hier ist meinfragment_compute.xml Datei:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="14dp"
    android:text="@string/compute_activity"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="44dp"
    android:text="@string/num_1"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/num1TextField"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView2"
    android:layout_centerHorizontal="true"
    android:ems="10"
    android:inputType="number"
    android:gravity="center" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/num2TextField"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/num1TextField"
    android:layout_below="@+id/textView3"
    android:ems="10"
    android:inputType="number"
    android:layout_centerHorizontal="true"
    android:gravity="center" >
</EditText>

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/num2TextField"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="22dp"
    android:text="@string/result"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/num1TextField"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="22dp"
    android:text="@string/num_2"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView4"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="22dp" />

<Button
    android:id="@+id/compute_multiply"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/num2TextField"
    android:layout_below="@+id/result"
    android:layout_marginTop="40dp"
    android:text="@string/multiply" />

<Button
    android:id="@+id/compute_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/compute_multiply"
    android:layout_alignBottom="@+id/compute_multiply"
    android:layout_alignLeft="@+id/num2TextField"
    android:text="@string/add" />

</RelativeLayout>

Hier ist meinComputeFragment.java Code:

public class ComputeFragment extends Fragment {

    String num1;
    String num2;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_compute, parent, false);

        // Add Button
        Button addButton = (Button)v.findViewById(R.id.compute_add);
        addButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // ERROR STARTS HERE!
                EditText num1Field = (EditText)v.findViewById(R.id.num1TextField);
                num1 = num1Field.getText().toString(); // Null Pointer Exception is thrown here!

                EditText num2Field = (EditText)v.findViewById(R.id.num2TextField);
                num2 = num2Field.getText().toString();
                // ERROR ENDS HERE!

                Intent i = new Intent(getActivity(), AddActivity.class);
                i.putExtra("x", num1);
                i.putExtra("y", num2);
                startActivityForResult(i,0);
            }
        });

        return v; 
    }
}

Ich danke Ihnen allen und wünsche Ihnen einen schönen Tag!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage