Я работаю над приложением, которое использует RecyclerView и ActionMode.На элементе RecyclerView у меня есть ImageView (mMultipleSelectionBackground), который установлен в GONE.В основном, когда я использую длинный щелчок / щелчок по элементу, он выберет его и выделит его (изменив ImageView на видимый) (если выбрано несколько элементов, он изменит ImageView на Visible для каждого конкретного элемента).Я делаю это в классе Адаптер.
@Override
public boolean onLongClick(View view) {
int longClickedPosition = getAdapterPosition();
mLongClickListener.onToDoLongClick(longClickedPosition);
ToDo toDo = mToDos.get(longClickedPosition);
try {
/**
* Check to see if the item is selected
* @mMultipleSelections - use this to block the long click if the user already did it on an item
*/
if (!toDo.isSelected() && mMultipleSelections <= 0){
toDo.setSelected(true);
mMultipleSelections++;
selectedToDos.add(longClickedPosition);
mMultipleSelectionBackground.setVisibility(View.VISIBLE);
view.startActionMode(mActionModeCallback);
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
Пока все хорошо.Проблема, с которой я сталкиваюсь, заключается в том, что когда я использую onDestroyActionMode, я хочу, чтобы ImageView для всех элементов был возвращен в GONE, но это не так.Изменяется только первый (и действительно, по этой логике это нормально).
@Override
public void onDestroyActionMode(ActionMode actionMode) {
Log.d(LOG_TAG, "DESTROY");
for (int x = 0; x < selectedToDos.size(); x++) {
mMultipleSelectionBackground.setVisibility(View.GONE);
mToDos.get(x).setSelected(false);
}
mMultipleSelections = 0;
}
Мой вопрос: как мне изменить ImageView для всех элементов, а не только для первого?