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!