0

I have set my ListView choice mode as below:

 listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

but after selecting some items and trying to Toast selected items it show me empty string .

how I Toast Selected Items:

 String selected = "";
    int cntChoice = listView.getCount();

    SparseBooleanArray sparseBooleanArray = listView.getCheckedItemPositions();
    for (int i = 0; i < cntChoice; i++) {
        if (sparseBooleanArray.get(i)) {
            selected +=listView.getItemAtPosition(i).toString() + "\n";
        }
    }
    Toast.makeText(getApplicationContext(),selected,Toast.LENGTH_SHORT).show();

I have set Listener for convert view on adapter and the problem is that

so is it possible to manage it ?

i mean is it possible to set item selected on convert view listener?

Mostafa Jamareh
  • 1,389
  • 4
  • 22
  • 54

2 Answers2

0

sparseBooleanArray only show you the position of selected items. you should get data from array or cursor that bind to listview. if you have a cursor for example you should use cursor.moveToPosition( item ).

try this page :

http://www.yogeshblogspot.com/how-to-get-selected-items-from-multi-select-list-view/

  • the problem is that when i have click listener for convert view it does not set automatically selected item , so i need to do it manually – Mostafa Jamareh Aug 29 '14 at 09:52
0

the problem is that when i have click listener for convert view it does not set automatically selected items , so i need to do it manually

for that we need a Map to store selected items with their position

private Map<Integer, String> selectedItems=new HashMap<Integer,String>;

and so we should do this on adapter:

 convertView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (!selectedItems.containsKey(position))
                    selectedItems.put(position, holder.text.getText().toString());
                else
                    selectedItems.remove(position);
            }
        });

and by calling this get item selected text:

 public String getSelectedItems() {
    Iterator<Integer> iterator = selectedItems.keySet().iterator();
    String selected = "";
    while (iterator.hasNext()) {
        int position = iterator.next();
        selected += selectedItems.get(position) + "\n";
    }
    return selected;
}
Mostafa Jamareh
  • 1,389
  • 4
  • 22
  • 54