Android: adapter wont let me use xml and id's that i created -
i have adapter listview wont allow me use own xml files, drawables or id's. lets me use things in adk
android.r.id.text1
but want able use this
r.id.myowntext
this adapter
mdrawerlistview.setadapter(new arrayadapter<string>(getactionbar().getthemedcontext(), android.r.layout.activity_list_item, android.r.id.text1, new string[]{ getstring(r.string.title_section1), getstring(r.string.title_section2), getstring(r.string.title_section3), getstring(r.string.title_section4), getstring(r.string.title_section5), }));
this fine me when try edit file android.r.layout.activity_list_item, or other 1 nothing happens. erased inside activity_list_item file , still acted if there no changes made.
when use own stuff in adapter error below:
04-10 17:08:24.670: e/androidruntime(30940): fatal exception: main 04-10 17:08:24.670: e/androidruntime(30940): java.lang.nullpointerexception 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.arrayadapter.createviewfromresource(arrayadapter.java:353) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.arrayadapter.getview(arrayadapter.java:323) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.abslistview.obtainview(abslistview.java:1636) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.listview.makeandaddview(listview.java:1772) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.listview.filldown(listview.java:695) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.listview.fillfromtop(listview.java:752) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.listview.layoutchildren(listview.java:1609) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.abslistview.onlayout(abslistview.java:1466) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.view.layout(view.java:7375) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.framelayout.onlayout(framelayout.java:338) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.view.layout(view.java:7375) 04-10 17:08:24.670: e/androidruntime(30940): @ android.support.v4.widget.drawerlayout.onlayout(drawerlayout.java:714) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.view.layout(view.java:7375) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.framelayout.onlayout(framelayout.java:338) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.view.layout(view.java:7375) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.linearlayout.setchildframe(linearlayout.java:1254) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.linearlayout.layoutvertical(linearlayout.java:1130) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.linearlayout.onlayout(linearlayout.java:1047) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.view.layout(view.java:7375) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.framelayout.onlayout(framelayout.java:338) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.view.layout(view.java:7375) 04-10 17:08:24.670: e/androidruntime(30940): @ android.widget.framelayout.onlayout(framelayout.java:338) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.view.layout(view.java:7375) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.viewroot.performtraversals(viewroot.java:1158) 04-10 17:08:24.670: e/androidruntime(30940): @ android.view.viewroot.handlemessage(viewroot.java:1878) 04-10 17:08:24.670: e/androidruntime(30940): @ android.os.handler.dispatchmessage(handler.java:99) 04-10 17:08:24.670: e/androidruntime(30940): @ android.os.looper.loop(looper.java:130) 04-10 17:08:24.670: e/androidruntime(30940): @ android.app.activitythread.main(activitythread.java:3691) 04-10 17:08:24.670: e/androidruntime(30940): @ java.lang.reflect.method.invokenative(native method) 04-10 17:08:24.670: e/androidruntime(30940): @ java.lang.reflect.method.invoke(method.java:507) 04-10 17:08:24.670: e/androidruntime(30940): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:912) 04-10 17:08:24.670: e/androidruntime(30940): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:670) 04-10 17:08:24.670: e/androidruntime(30940): @ dalvik.system.nativestart.main(native method)
the way instancing adapter implies that:
- it use android.r.layout.activity_list_item layout each item
- it use textview id android.r.id.text1 textview place texts in
it makes sense changing layout , nothing happens, because layout passing (android.r.layout.activity_list_item) exists in sdk. cannot change it, need create new layout.
when try new layout , nullpointerexception, may because layout not have textview same id passing in constructor of adapter.
so, need custom layout each item need to:
- declare layout, should include 1 textview
- in constructor of adapter, pass id of layout , id of textview in layout
Comments
Post a Comment