when tried customize alertdialog textview, got nullpointerexception. wonder why happens? seems textview hasn't initialized when call settext method. if so, when textview initialized if using layoutinflater?
thanks lot!
here java code:
listview.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { layoutinflater layoutinflater = getlayoutinflater(); view layout = layoutinflater.inflate(r.layout.dialog_desc, null); alertdialog.builder alertdialog = new alertdialog.builder(mainactivity.this).settitle("description"); alertdialog.setview(layout); textview desctextview = (textview) findviewbyid(r.id.desc_text); string descstring = itemdata.get(position).get("desc"); desctextview.settext(descstring); alertdialog.show(); } });
the alertdialog works fine if comment "desctextview.settext(descstring)". besides, descstring fine.
here xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/desc_dialog_layout"> <textview android:id="@+id/desc_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="new text" /> </linearlayout>
here exception info:
04-28 13:27:44.794 12896-12896/com.example.chanson.listview e/androidruntime﹕ fatal exception: main java.lang.nullpointerexception @ com.example.chanson.listview.main.mainactivity$5.onitemclick(mainactivity.java:99) @ android.widget.adapterview.performitemclick(adapterview.java:298) @ android.widget.abslistview.performitemclick(abslistview.java:1147) @ android.widget.abslistview$performclick.run(abslistview.java:2979) @ android.widget.abslistview$1.run(abslistview.java:3755) @ android.os.handler.handlecallback(handler.java:615) @ android.os.handler.dispatchmessage(handler.java:92) @ android.os.looper.loop(looper.java:153) @ android.app.activitythread.main(activitythread.java:5000) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:511) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:821) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:584) @ dalvik.system.nativestart.main(native method)
change
textview desctextview = (textview) findviewbyid(r.id.desc_text);
to
textview desctextview = (textview) layout.findviewbyid(r.id.desc_text);