android - NullPointerException exception when trying to set title size on AlertDialog -
in alertdialog, able set size of message when perform same title crashes.
code:
alertdialog dialog = new alertdialog.builder(this).setmessage(message).settitle(title) .setpositivebutton(android.r.string.ok, new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int id) { dialog.cancel(); } }).show(); textview titletxt= (textview)dialog.findviewbyid(android.r.id.title); **titletxt.settextsize(typedvalue.complex_unit_sp, 40);** // crash here textview textview = (textview) dialog.findviewbyid(android.r.id.message); **textview.settextsize(40);** // works fine button btn1 = dialog.getbutton(dialoginterface.button_positive); btn1.settextsize(36); my output:
05-10 11:49:56.917: e/androidruntime(8376): fatal exception: main 05-10 11:49:56.917: e/androidruntime(8376): java.lang.nullpointerexception 05-10 11:49:56.917: e/androidruntime(8376): @ com.binary.taxitop.loginscreen.showalertdialog(loginscreen.java:116) 05-10 11:49:56.917: e/androidruntime(8376): @ com.binary.taxitop.loginscreen.verifycredentialsandenternextscreen(loginscreen.java:103) 05-10 11:49:56.917: e/androidruntime(8376): @ com.binary.taxitop.loginscreen.onclick(loginscreen.java:84) 05-10 11:49:56.917: e/androidruntime(8376): @ android.view.view.performclick(view.java:3511) 05-10 11:49:56.917: e/androidruntime(8376): @ android.view.view$performclick.run(view.java:14109) 05-10 11:49:56.917: e/androidruntime(8376): @ android.os.handler.handlecallback(handler.java:605) 05-10 11:49:56.917: e/androidruntime(8376): @ android.os.handler.dispatchmessage(handler.java:92) 05-10 11:49:56.917: e/androidruntime(8376): @ android.os.looper.loop(looper.java:137) 05-10 11:49:56.917: e/androidruntime(8376): @ android.app.activitythread.main(activitythread.java:4424) 05-10 11:49:56.917: e/androidruntime(8376): @ java.lang.reflect.method.invokenative(native method) 05-10 11:49:56.917: e/androidruntime(8376): @ java.lang.reflect.method.invoke(method.java:511) 05-10 11:49:56.917: e/androidruntime(8376): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 05-10 11:49:56.917: e/androidruntime(8376): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 05-10 11:49:56.917: e/androidruntime(8376): @ dalvik.system.nativestart.main(native method) thanks in advance.
as know there no direct method modify title in alertdialog
you can create custom dialog or use reflect
the reflect code belowed net, hope useful
alertdialog dialog = (alertdialog) getdialog(); try { field malert = alertdialog.class.getdeclaredfield("malert"); malert.setaccessible(true); object alertcontroller = malert.get(dialog); field mtitleview = alertcontroller.getclass().getdeclaredfield("mtitleview"); mtitleview.setaccessible(true); textview title = (textview) mtitleview.get(alertcontroller); title.settextcolor(0xff33b5e5); } catch (nosuchfieldexception e) { e.printstacktrace(); } catch (illegalargumentexception e) { e.printstacktrace(); } catch (illegalaccessexception e) { e.printstacktrace(); }
Comments
Post a Comment