1. In itemlist class
myList.setOnItemLongClickListener (new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
view.setBackgroundColor(Color.CYAN);
// Capture ListView item click
myList.setMultiChoiceModeListener (new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged (ActionMode mode,
int position, long id, boolean checked) {
// Prints the count of selected Items in title
mode.setTitle(myList.getCheckedItemCount() + " Selected");
// Toggle the state of item after every click on it
adapter.toggleSelection(position);
}
2. in custom adapter class
create methods which is given below:-
public void toggleSelection (int position) {
selectView(position, !mSelectedItemsIds.get(position));
}
public void selectView(int position, boolean value) {
if (value)
mSelectedItemsIds.put(position, value);
else
mSelectedItemsIds.delete(position);
notifyDataSetChanged();
}
public SparseBooleanArray getSelectedIds() {
return mSelectedItemsIds;
}
myList.setOnItemLongClickListener (new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
view.setBackgroundColor(Color.CYAN);
// Capture ListView item click
myList.setMultiChoiceModeListener (new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged (ActionMode mode,
int position, long id, boolean checked) {
// Prints the count of selected Items in title
mode.setTitle(myList.getCheckedItemCount() + " Selected");
// Toggle the state of item after every click on it
adapter.toggleSelection(position);
}
2. in custom adapter class
create methods which is given below:-
public void toggleSelection (int position) {
selectView(position, !mSelectedItemsIds.get(position));
}
public void selectView(int position, boolean value) {
if (value)
mSelectedItemsIds.put(position, value);
else
mSelectedItemsIds.delete(position);
notifyDataSetChanged();
}
public SparseBooleanArray getSelectedIds() {
return mSelectedItemsIds;
}