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

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -