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

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

inno setup - TLabel or TNewStaticText - change .Font.Style on Focus like Cursor changes with .Cursor -