Мой RecyclerView
- это список с флажками, а внизу страницы - кнопка отправки. Когда я нажимаю на кнопку, флажки должны быть отключены, но состояние тех ящиков, которые уже проверены, должно сохраняться. А также, как получить доступ к флажку, так как он находится в RecyclerView.ViewHolder
? Помоги пожалуйста.Отключить элементы в RecyclerView android
ответ
Вы можете попробовать это:
RecyclerView rv=new RecyclerView(context);
rv.getChildAt(5).setEnabled(false); // disables the 6th element
Это гораздо лучше, чтобы это как атрибут к элементу, который вы моделирования.
Итак, если элемент модели будет иметь состояние «включено», которое вы можете изменить.
public class Model {
private boolean isEnabled;
private boolean isChecked;
public void setEnabled(boolean enabled) {
isEnabled = enabled;
}
public void setChecked(boolean checked) {
isChecked = checked;
}
public boolean isEnabled() {
return isEnabled;
}
public boolean isChecked() {
return isChecked;
}
}
Тогда ваш ViewHolder будет проверять этот атрибут каждый раз, когда вы привязываетесь к нему. Кроме того, сам ViewHolder будет прослушивать изменения в флажке View, который он обрабатывает.
public class ModelViewHolder extends RecyclerView.ViewHolder implements CompoundButton.OnCheckChangeListener {
private CheckBox checkBox;
private Model boundItem;
public ModelViewHolder(View itemView) {
checkBox = (CheckBox) itemView.findItemById(R.id.checkBoxId);
checkBox.setOnCheckChangeListener(this);
}
public void bind(Model model) {
boundItem = model;
getItemView().setEnabled(model.isEnabled());
checkBox.setChecked(model.isChecked());
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
boundItem.setChecked(isChecked);
}
}
Теперь, что это позволяет это состояние элемента будет соответствовать в то время как пользователь прокручивает (поскольку просмотров в RecyclerItem повторно используются). Он также позволяет вам легко использовать notifyItemChanged(int position)
, когда вы включаете/отключите элемент «Модель».
Вам нужно будет получить свой товар в списке, который вы передали адаптеру. Если это настраиваемый адаптер, вы можете сделать способ для возврата своего списка, а код будет:
mAdapter.getList().get(4).setEnabled(false); //or equivalent
mAdapter.notifyDataSetChanged(); //or mRecycler.getAdapter().notifyDataSetChanged()
- 1. Как отключить элементы RecyclerView в Android?
- 2. Android RecyclerView - Рассчитать элементы
- 3. android recyclerview не отображает элементы
- 4. RecyclerView в android, не отображающий элементы списка
- 5. android показать другие элементы в конце recyclerview
- 6. Android add/replace Элементы в RecyclerView
- 7. Как перебирать элементы в Android RecyclerView?
- 8. Android recyclerView дублирует элементы в прокрутке
- 9. Элементы теряются в Recyclerview
- 10. SlidingPaneLayout элементы в RecyclerView
- 11. Элементы перекрытия Android RecyclerView (Накопители карт)
- 12. Android RecyclerView не оживляет все элементы
- 13. Android Horizontal RecyclerView с ListViews как элементы
- 14. Android - RecyclerView: удалите элементы с прокруткой
- 15. Android RecyclerView не отображает элементы правильно
- 16. Элементы recyclerview не отображаются
- 17. Отключить нажмите RecyclerView внутри SwipeRefreshLayout
- 18. Android Recyclerview
- 19. Невозможно отобразить элементы в RecyclerView
- 20. Android recyclerview в статье recyclerview
- 21. RecyclerView элементы не удаляются
- 22. Отключить Прикосновение внутреннего RecyclerView
- 23. RecyclerView сохранить элементы в JSON
- 24. Android RecyclerView внутри RecyclerView?
- 25. отключить все элементы в макете - Android
- 26. Элементы перезаписи RecyclerView
- 27. Элементы адаптера доступа Recyclerview
- 28. Добавить элементы в начало recyclerview
- 29. Объявление в recyclerview заменить элементы
- 30. Android: RecyclerView onclick update еще один RecyclerView
Есть ли способ получить доступ к флажку ViewHolder на классе фрагментов? – fmpsagara
Технически да, но зачем вам это нужно? Флажок не так важен, как значение. – DeeV
Важно знать, что флажок «Вид» (флажок) является временным. Там всего столько, сколько видимых на экране (плюс один или два). Если у вас есть сотня предметов, то может быть только 10 флажков. Если вы хотите узнать значение предмета 99, вы не сможете его получить. – DeeV