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

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -