android - Even after removing an erroneous line of code, an error still persists -
i'm working on app keep score card game, , working fine until now. have several places check make sure number put in won't cause errors, is, don't break rules of game. if such input encountered, app opens alertdialog
telling user of problem. however, had tried call getdialog().setcanceledontouchoutside(false)
, threw nullpointerexception
since creating alertdialog
alertdialog.builder
. removed statement, every time try run app , intentionally make alertdialog
pop up, nullpointerexception
message shows , app crashes.
here's method creates alertdialog
:
@override public dialog oncreatedialog(bundle savedinstancestate) { alertdialog.builder builder = new alertdialog.builder(getactivity()); builder.settitle(getstring(r.string.title_error)) .setmessage(errortext) .setcancelable(false); switch (errortype) { case 1: builder.setpositivebutton(getstring(r.string.text_ok), new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int which) { playernumerrordialoglistener activity = (playernumerrordialoglistener) getactivity(); activity.onfinishplayernumerror(); dialog.dismiss(); } }); break; case 2: builder.setpositivebutton(getstring(r.string.text_ok), new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int which) { currenttotalscoreerrordialoglistener activity = (currenttotalscoreerrordialoglistener) getactivity(); activity.onfinishcurrenttotalscoreerror(); } }); break; case 3: builder.setpositivebutton(getstring(r.string.text_ok), new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int which) { playerscoreerrordialoglistener activity = (playerscoreerrordialoglistener) getactivity(); activity.onfinishplayerscoreerror(); } }); break; } // line have removed. // getdialog().setcanceledontouchoutside(false); return builder.create(); }
and here's stack trace:
fatal exception: main process: com.gcapps.richcardsscorekeeper, pid: 5268 java.lang.nullpointerexception: attempt invoke virtual method 'void android.app.dialog.setcanceledontouchoutside(boolean)' on null object reference @ com.gcapps.richcardsscorekeeper.errordialog.oncreatedialog(errordialog.java:94) @ android.app.dialogfragment.getlayoutinflater(dialogfragment.java:398) @ android.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:904) @ android.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1082) @ android.app.backstackrecord.run(backstackrecord.java:833) @ android.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:1467) @ android.app.fragmentmanagerimpl$1.run(fragmentmanager.java:452) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:145) @ android.app.activitythread.main(activitythread.java:6134) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1399) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1194)
any ideas why nullpointerexception
still being thrown? i've tried restarting app, rebuilding project, invalidating cache , restarting android studio, , copying entire class, deleting it, , pasting new file (in case old 1 corrupt reason).
you can't call getdialog()
inside oncreatedialog()
since haven't returned alert dialog let dialogfragment
know yet. call on dialog
instance,
dialog d = builder.create(); d.setcanceledontouchoutside(false); return d;
Comments
Post a Comment