java - Null Point Exception -> editText.getText().toString() -
i'm getting null point exception when this:
string serial = serialfield.gettext().tostring();
here's code:
public static class pointcreation extends fragment { public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // inflate layout fragment view view = inflater.inflate(r.layout.point_creation, container, false); button buttonguardar = (button) view.findviewbyid(r.id.buttonguardar); buttonguardar.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { toast.maketext(getactivity().getapplicationcontext(), "tou carregar no botao guardar", toast.length_long).show(); final edittext serialfield = (edittext) view.findviewbyid(r.id.serial); final edittext observationfield = (edittext) view.findviewbyid(r.id.observation); string serial = serialfield.gettext().tostring(); string observation = observationfield.gettext().tostring(); pointslist.add(new point("serial", observation, false, 1, 2, 3, 4, 5, 6, 7, 8, 9)); toast.maketext(getactivity().getapplicationcontext(), observation, toast.length_long).show(); } }); button buttonapagar = (button) view.findviewbyid(r.id.buttonapagar); buttonapagar.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { toast.maketext(getactivity().getapplicationcontext(), "tou carregar no botao apagar", toast.length_long).show(); } }); return view; } }
here's xml:
<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/serial" android:layout_width="150dp" android:layout_height="45dp" android:textsize="20sp" android:textstyle="bold" android:gravity="center" android:text="serial" /> <edittext android:id="@+id/serial" android:layout_height="wrap_content" android:layout_torightof="@+id/serial" android:inputtype="text" android:layout_width="fill_parent" > </edittext> <textview android:id="@+id/observations" android:layout_width="150dp" android:layout_height="45dp" android:textsize="20sp" android:textstyle="bold" android:gravity="center" android:layout_below="@+id/serial" android:text="observações" /> <edittext android:id="@+id/observation" android:layout_height="wrap_content" android:layout_torightof="@+id/observations" android:inputtype="text" android:layout_width="fill_parent" android:layout_below="@+id/serial" > </edittext> </relativelayout>
logcat:
04-09 17:07:38.639 14736-14736/com.example.testlayout.app e/androidruntime﹕ fatal exception: main process: com.example.testlayout.app, pid: 14736 java.lang.nullpointerexception @ com.example.testlayout.app.pointslist$pointcreation$1.onclick(pointslist.java:120) @ android.view.view.performclick(view.java:4438) @ android.view.view$performclick.run(view.java:18422) @ android.os.handler.handlecallback(handler.java:733) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:136) @ android.app.activitythread.main(activitythread.java:5017) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:515) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) @ dalvik.system.nativestart.main(native method)
you need move out of button onclick
edittext serialfield = (edittext) view.findviewbyid(r.id.serial);
what happens looking edittext
child of button
not case
so should be
public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // inflate layout fragment view view = inflater.inflate(r.layout.point_creation, container, false); final edittext serialfield = (edittext) view.findviewbyid(r.id.serial); final edittext observationfield = (edittext) view.findviewbyid(r.id.observation); button buttonguardar = (button) view.findviewbyid(r.id.buttonguardar); buttonguardar.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { toast.maketext(getactivity().getapplicationcontext(), "tou carregar no botao guardar", toast.length_long).show(); string serial = serialfield.gettext().tostring(); string observation = observationfield.gettext().tostring(); pointslist.add(new point("serial", observation, false, 1, 2, 3, 4, 5, 6, 7, 8, 9)); toast.maketext(getactivity().getapplicationcontext(), observation, toast.length_long).show(); } }); button buttonapagar = (button) view.findviewbyid(r.id.buttonapagar); buttonapagar.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { toast.maketext(getactivity().getapplicationcontext(), "tou carregar no botao apagar", toast.length_long).show(); } }); return view; }
edit:
as tyczj pointed can rename
@override public void onclick(view view)
to
@override public void onclick(view v)
and change view view
final view view
. there no need initialize edittext
everytime on button
click
Comments
Post a Comment