views:

12

answers:

2

I'm using the following code to populate listview

Oncreate method:

SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.more_custom_row_view, new String[] {"title","desc"}, new int[] {R.id.text1,R.id.text2});
populateList();
setListAdapter(adapter);


static final ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>(); 

private void populateList() {
   HashMap<String,String> temp = new HashMap<String,String>();
   temp.put("title","Previous Searches");
   temp.put("desc", "View your search history");
   list.add(temp);
   HashMap<String,String> temp1 = new HashMap<String,String>();
   temp1.put("title","Settings");
   temp1.put("desc", "Update your account settings");
   list.add(temp1);
}

when i go to another activity and come back to this acitivity it duplicate list items each time any one guide me what mistake am i doing?

A: 

removing final from the list resolved my problem.

UMMA
A: 

The problem is that you are using a static list for your items and not clearing or reinstantiating it in your onCreate method.

The list will stay in memory as long as your program is running because it is defined static. If you are returning to the activity the items are again added to the list. You could use clear() to remove all items from the list in your populate list call before filling it again.

Janusz