How to get Selected items from Multi Select List View

preethi picture preethi · Jan 4, 2011 · Viewed 80.7k times · Source

I am using an array adapter and to this am adding an array list of string s , the list is multi select , How can i get the values of list items clicked ?

my_contacts_list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice,conts_list);
  my_contacts_list.setAdapter(adapter);

I was trying to do this ,

SparseBooleanArray positions = my_contacts_list.getCheckedItemPositions();
  int size=positions.size();
  int i=0;
  while(i <= size){
   conts_list.get(positions.get(i));
   i++;
  }

But position.get(i) is an array list , how to retrieve the selected items then ?

Answer

Daren Robbins picture Daren Robbins · Jan 4, 2011

SparseBooleanArray.get returns a boolean, but I believe you need to check it for each position in your list, e.g.

int len = listView.getCount();
SparseBooleanArray checked = listView.getCheckedItemPositions();
for (int i = 0; i < len; i++)
 if (checked.get(i)) {
  String item = cont_list.get(i);
  /* do whatever you want with the checked item */
 }