android listview with item and sub item not working properly -
i have database select 2 strings 1 item other 1 description.i trying map these 2 strings listview item-subitem layout. following code tried far.
list<map<string, string>> data = new arraylist<map<string, string>>(); map<string, string> datum = new hashmap<string, string>(2); simpleadapter adapter = new simpleadapter(this, data, android.r.layout.simple_list_item_2, new string[] { "item","descr" }, new int[] { android.r.id.text1, android.r.id.text2 }); itemlist.setadapter(adapter); cursor cours = mainactivity.mydb.query("sub_menu", null, "cat_id = " + menuid + " , sub_flag = 1", null, null, null, null); if (cours.movetofirst()) { { datum.put("item", cours.getstring(cours.getcolumnindex("sub_label"))); datum.put("descr", cours.getstring(cours.getcolumnindex("sub_description"))); data.add(datum); log.d("testt", datum.tostring()); adapter.notifydatasetchanged(); } while (cours.movetonext()); } the problem add 5 entries listview same values last row selected form database not what. idea how fix ?
edit. after experimenting found overwriting object datum end having save value entries. fix easy moving intializition line datum loop. here final code
list<map<string, string>> data = new arraylist<map<string, string>>(); string[] = new string[] { "rowid", "col_1" }; int[] = new int[] { android.r.id.text1, android.r.id.text2 }; cursor cours = mainactivity.mydb.query("sub_menu", null, "cat_id = " + menuid + " , sub_flag = 1", null, null, null, null); if (cours.movetofirst()) { { map<string, string> datum = new hashmap<string, string>(2); datum.put("rowid", cours.getstring(cours.getcolumnindex("sub_label"))); datum.put("col_1", cours.getstring(cours .getcolumnindex("sub_description"))); data.add(datum); } while (cours.movetonext()); } simpleadapter adapter = new simpleadapter(this, data, android.r.layout.simple_list_item_2, from, to); itemlist.setadapter(adapter);
make custom listview , use cursoradapter here example you.
Comments
Post a Comment