RecyclerView к списку элементов

177
01 марта 2019, 01:40

Проблема следующего характера, создал список checkBox-ов при помощи recyclerView, наполняю его следующим образом:

public void onBindViewHolder(@NonNull ManufactureListAdapter.MyViewHolder myViewHolder, int i) {
    final String item = listManufactured.get(i);
    myViewHolder.cbItem.setText(item);
    myViewHolder.cbItem.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked){
                checkedManufactureList.add(item);
            } else {
                checkedManufactureList.remove(item);
            }
        }
    });
    onCheckedListListener.checkedListListener(checkedManufactureList);
}

Мне нужно выполнять сброс всех checkBox по кнопке или иному событию из вызывающего класса, как это можно реализовать?

Answer 1

Используйте для item свой класс Item, который будет иметь переменную checked, name и другие переменные, необходимые для работы приложения.

Типа так:

public class Item {
    private boolean checked;
    private String name;
    public boolean isChecked() {
        return checked;
    }
    public void setChecked(boolean checked) {
        this.checked = checked;
    }   
    public void setName(String name) {
        this.name= name;
    }  
    public String getName() {
        return name;
    } 
}

При нажатии на кнопку делаете вот так:

for (int i = 0; i < items.size(); i++) 
      items.get(i).setChecked(false);
adapter.notifyDataSetChanged();

При этом в onBindViewHolder у вас в обязательном порядке должно быть:

myViewHolder.cbItem.setChecked(item.getChecked());
READ ALSO
Нужно ли добавлять медиа-запрос, если ширина экрана &lt;= 260px?

Нужно ли добавлять медиа-запрос, если ширина экрана <= 260px?

Недавно начал практиковаться в медиа-запросахНужно ли добавлять медиа-запрос, если ширина экрана <= 260px? Существуют ли вообще устройства...

172
Не работает JS. Не выводит &lt;input value&gt;

Не работает JS. Не выводит <input value>

Застрял на элементарном, не могу понять почему так

187
Как сменить слайд OWl по index&#39;у?

Как сменить слайд OWl по index'у?

сделал кастомные thumbnailsIndex thumbnail = index slide

204
Переходы между страницами

Переходы между страницами

Я делаю мобильное приложение на ionic через angular

167