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?
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;
}