problem showing object in SimpleExpandableActivity android -


hello have simple expandable list activity working fine until changed this: list<map<string, string>> groupdata = new arraylist<map<string, string>>(); this: list<map<string, image>> groupdata = new arraylist<map<string, image>>(); guess when set textview items in simple expandable list adapter's constructor textview expecting strings instead of objects. there way work arround ? or have stuck strings? here's code:

 public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);          setcontentview(r.layout.expandable_list_layout);          list<user> header = new arraylist<user>();         header.add(new user("john"));         header.add(new user("smith"));         header.add(new user("anderson"));         header.add(new user("trinity"));         header.add(new user("morfeo"));          list<string> gretting = new arraylist<string>();         gretting.add("hello");          list<map<string, user>> groupdata = new arraylist<map<string, user>>();         final list<list<map<string, string>>> childdata = new arraylist<list<map<string, string>>>();          (user user : header) {             map<string, user> curgroupmap = new hashmap<string, user>();             groupdata.add(curgroupmap);             curgroupmap.put(name, user);              list<map<string, string>> children = new arraylist<map<string, string>>();             (string word : gretting) {                 map<string, string> curchildmap = new hashmap<string, string>();                 children.add(curchildmap);                  curchildmap.put(name, word);             }             childdata.add(children);         }          //our adapter          madapter = new simpleexpandablelistadapter(                 getapplicationcontext(),                 groupdata,                 r.layout.simple_expandable_list_item_1,                 new string[] { name },                 new int[] { r.id.header_text1 },                 childdata,                 r.layout.simple_expandable_list_item_2,                 new string[] { name },                 new int[] { r.id.text1 }                 );          expandablelistview lv = (expandablelistview)findviewbyid(r.id.list);         lv.setadapter(madapter);     } } 

so final question is: have implement own simple expandable list adapter able set text myself?

edit: here trace of error:

02-21 08:56:54.128: error/androidruntime(277): java.lang.classcastexception: se.madcoderz.categoryobject.user 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.simpleexpandablelistadapter.bindview(simpleexpandablelistadapter.java:249) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.simpleexpandablelistadapter.getchildview(simpleexpandablelistadapter.java:229) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.expandablelistconnector.getview(expandablelistconnector.java:450) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.abslistview.obtainview(abslistview.java:1315) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.listview.makeandaddview(listview.java:1727) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.listview.filldown(listview.java:652) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.listview.fillspecific(listview.java:1284) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.listview.layoutchildren(listview.java:1558) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.abslistview.onlayout(abslistview.java:1147) 02-21 08:56:54.128: error/androidruntime(277):     @ android.view.view.layout(view.java:7035) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.linearlayout.setchildframe(linearlayout.java:1249) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.linearlayout.layoutvertical(linearlayout.java:1125) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.linearlayout.onlayout(linearlayout.java:1042) 02-21 08:56:54.128: error/androidruntime(277):     @ android.view.view.layout(view.java:7035) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.framelayout.onlayout(framelayout.java:333) 02-21 08:56:54.128: error/androidruntime(277):     @ android.view.view.layout(view.java:7035) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.linearlayout.setchildframe(linearlayout.java:1249) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.linearlayout.layoutvertical(linearlayout.java:1125) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.linearlayout.onlayout(linearlayout.java:1042) 02-21 08:56:54.128: error/androidruntime(277):     @ android.view.view.layout(view.java:7035) 02-21 08:56:54.128: error/androidruntime(277):     @ android.widget.framelayout.onlayout(framelayout.java:333) 02-21 08:56:54.128: error/androidruntime(277):     @ android.view.view.layout(view.java:7035) 02-21 08:56:54.128: error/androidruntime(277):     @ android.view.viewroot.performtraversals(viewroot.java:1045) 02-21 08:56:54.128: error/androidruntime(277):     @ android.view.viewroot.handlemessage(viewroot.java:1727) 02-21 08:56:54.128: error/androidruntime(277):     @ android.os.handler.dispatchmessage(handler.java:99) 02-21 08:56:54.128: error/androidruntime(277):     @ android.os.looper.loop(looper.java:123) 02-21 08:56:54.128: error/androidruntime(277):     @ android.app.activitythread.main(activitythread.java:4627) 02-21 08:56:54.128: error/androidruntime(277):     @ java.lang.reflect.method.invokenative(native method) 02-21 08:56:54.128: error/androidruntime(277):     @ java.lang.reflect.method.invoke(method.java:521) 02-21 08:56:54.128: error/androidruntime(277):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:868) 02-21 08:56:54.128: error/androidruntime(277):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:626) 02-21 08:56:54.128: error/androidruntime(277):     @ dalvik.system.nativestart.main(native method) 

2nd edit it's working listitems not visible if they're there:

public class categoriesadapter2 extends simpleexpandablelistadapter {      private list<? extends list<? extends map<string, user>>> mchilddata;     private string[] mchildfrom;     private int[] mchildto;      public categoriesadapter2(context context, list<? extends map<string, ?>> groupdata, int grouplayout,                               string[] groupfrom, int[] groupto, list<list<map<string, user>>> childdata,                               int childlayout, string[] childfrom, int[] childto) {         super(context, groupdata, grouplayout, groupfrom, groupto, childdata, childlayout, childfrom, childto);          mchilddata = childdata;         mchildfrom = childfrom;         mchildto = childto;      }     @override     public view getchildview(int groupposition, int childposition, boolean islastchild, view convertview, viewgroup parent) {          view v;         if (convertview == null) {             v = newchildview(islastchild, parent);         } else {             v = convertview;         }         bindview(v, mchilddata.get(groupposition).get(childposition), mchildfrom, mchildto, groupposition, childposition);         return v;     }      private void bindview(view view, map<string, user> data, string[] from, int[] to, int groupposition, int childposition) {         int len = to.length - 1;          (int = 0; < len; i++) {             textview v = (textview)              view.findviewbyid(to[i]);             if (v != null) {                 v.settext(data.get(from[i]).getname());             }         }     } } 

now it's working don't solution. made new class , extended baseexpandablelistadapter, same superclass simpleexpandablelistadapter extends. don't solution, if there's better solution please let me know.

thanks.


Comments

Popular posts from this blog

jQuery clickable div with working mailto link inside -

java - Getting corefrences with Standard corenlp package -

WPF: binding viewmodel property of type DateTime to Calendar inside ItemsControl -