Tuesday, 17 May 2016

How to select multiple items in list by long press?

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

No comments:

Post a Comment