crash - A prompt for user input makes the app crashes -
i coded demo prompt user input, , crashes when click ok button on prompt dialog, giving me error log:
08-24 06:24:11.669 3275-3275/com.sano.tamer.prompuserinputdialog w/iinputconnectionwrapper: beginbatchedit on inactive inputconnection 08-24 06:24:11.669 3275-3275/com.sano.tamer.prompuserinputdialog w/iinputconnectionwrapper: endbatchedit on inactive inputconnection 08-24 06:24:19.019 3275-3275/com.sano.tamer.prompuserinputdialog d/androidruntime: shutting down vm 08-24 06:24:19.019 3275-3275/com.sano.tamer.prompuserinputdialog w/dalvikvm: threadid=1: thread exiting uncaught exception (group=0x5c8d4160) 08-24 06:24:19.039 3275-3275/com.sano.tamer.prompuserinputdialog e/androidruntime: fatal exception: main process: com.sano.tamer.prompuserinputdialog, pid: 3275 java.lang.nullpointerexception @ com.sano.tamer.prompuserinputdialog.mainactivity$1$2.onclick(mainactivity.java:48) @ android.support.v7.app.alertcontroller$buttonhandler.handlemessage(alertcontroller.java:157) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:149) @ android.app.activitythread.main(activitythread.java:5252) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:515) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:794) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:610) @ dalvik.system.nativestart.main(native method)
i using physical device running kitkat.
here files:
prompts.xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dp"> <textview android:id="@+id/tvuserinput" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/tv_message" /> <edittext android:id="@+id/etuserinput" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="text"> <requestfocus/> </edittext> </linearlayout>
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.sano.tamer.prompuserinputdialog.mainactivity"> <button android:id="@+id/btnshowprompt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_label"/> <edittext android:id="@+id/etresult" android:layout_width="match_parent" android:layout_height="wrap_content" /> </linearlayout>
mainactivity.java:
package com.sano.tamer.prompuserinputdialog; import android.content.context; import android.content.dialoginterface; import android.support.v7.app.alertdialog; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.layoutinflater; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.textview; public class mainactivity extends appcompatactivity { private button btnshowprompt; private edittext etresult; final context context = this; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); btnshowprompt = (button) findviewbyid(r.id.btnshowprompt); etresult = (edittext) findviewbyid(r.id.etresult); btnshowprompt.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { // prompts.xml view layoutinflater inflater = layoutinflater.from(context); view vuserprompt = inflater.inflate(r.layout.prompts,null); alertdialog.builder adbuilder = new alertdialog.builder(context); // set prompts.xml layout file of alertdialog builder adbuilder.setview(vuserprompt); final edittext etuserinput = (edittext) findviewbyid(r.id.etuserinput); // setup dialog window adbuilder .setcancelable(false) .setpositivebutton("ok", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialoginterface, int i) { // user input , set result etresult.settext(etuserinput.gettext()); } }) .setnegativebutton("cancel", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialoginterface, int i) { dialoginterface.cancel(); } }); // create alert dialog alertdialog alertdialog = adbuilder.create(); alertdialog.show(); } }); } }
Comments
Post a Comment