Выбрать все опции и отдельный элемент выбрать 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 (). Тебе хорошо идти.