Cześć, mam Listę z moim obiektem. Tę listę wyświetlam w RecyclerView, każdy z elementów ma swój CheckBox. Chciałbym zrobić, abypo zaznaczeniu jakiś wybranych elementów usunać je jednym przyciskiem, a nie usuwać je po kolei. Szukałem w google ale nic nie działa tak jak powinno. Zauważyłem, że jedni tworzą drugą listę i dodają do niej zaznaczone elementy, a potem ją usuwają inny kombinują z lista boolean. Jakieś pomysły, rady? Dzięki
dodana zawartość
Udało mi się ogarnać to samemu (prawie). ?? Do mojego obiektu, który jest w liście dodałem atrybut
private boolean isSelected = false;
W MainActivity stworzyłem drugą listę:
List selectedList = new ArrayList();
i w metodzie, która usuwa zaznaczone obiekty z listy napisałem
for(int i=0; i<selectedList .size(); i++){
listTasks.remove(selectedList .get(i));
}
mAdapter.notifyDataSetChanged();
listTask to ta lista na której są wszystkie obiekty.
W moim RecyclerAdapter w onBindViewHolder dodałem:
recyclerViewHolder.itemView.setBackgroundColor(myTask.isSelected() ? Color.LTGRAY : Color.CYAN);
recyclerViewHolder.taskName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myTask.setSelected(!myTask.isSelected());
recyclerViewHolder.itemView.setBackgroundColor(myTask.isSelected() ? Color.LTGRAY : Color.CYAN);
if(myTask.isSelected()){
selectedTask.add(myTask);
}
}
});
Korzystałem z https://stackoverflow.com/questions/36369913/how-to-implement-multi-select-in-recyclerview
Teoretycznie wszystko działa ale muszę jeszcze sprawdzić 🙂