Выбрать все опции и отдельный элемент выбрать recyclerview android

Я реализую пользовательский просмотрщик с переключателем для выбора предметов. У меня есть опция "Выбрать все" в правом углу панели приложения (верхняя панель). Я хочу, чтобы пользователь мог использовать опцию "Выбрать все", а также разрешить выбор отдельного элемента в программе просмотра.

Я не знаю, как реализовать индивидуальный выбор вместе с Select All. Когда элемент отменяется при выборе после использования опции select all, и когда список прокручивается, элемент выбирается автоматически, поскольку флаг isSelectedAll установлен в true в методе onBindViewHolder в приведенном ниже коде.

******SELECT ALL CLICK LISTENER IN ACTIVITY CLASS******
mBinding.imageViewActionSelect.setOnClickListener(v -> {
    mAdapter.selectAll();
});

******ADAPTER CLASS******
public void selectAll() {
    isSelectedAll = true;
    notifyDataSetChanged();
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    if (isSelectedAll) {
        holder.mSwitchView.setChecked(true);
    }
    else
        holder.mSwitchView.setChecked(false);
}

2 ответа

Вы можете использовать эту библиотеку FastAdapter: https://github.com/mikepenz/FastAdapter. Единственный выбор - это легко, он уже сделан для вас. Для множественного выбора, вы можете просто пройтись по всем вашим пунктам и позвонить mAdapter.toggleSelection(position), Когда вам нужны выбранные предметы, вы можете легко позвонить mAdapter.getSelection(), Это так просто, нет необходимости делать вещи самостоятельно

Сначала добавьте одну переменную isSelected в ваш класс POJO, а затем, пока вы выбираете опцию All, установите для этой переменной значение true, запустив список элементов в цикле, а затем вызовите adaptor.notifyDataSetChanged(). Теперь, когда вы выбираете или отменяете выбор отдельных элементов, задайте для переменной isSelected значение true или false в соответствии с вашими потребностями и не забудьте вызвать notifyDataSetChanged (). Тебе хорошо идти.

Другие вопросы по тегам