"Или есть способ отправить данные из окна повторного просмотра обратно во фрагмент, когда нажата команда removeBtn?" ответ да
Один из подходов состоит в том, чтобы передать вашему адаптеру свой собственный прослушиватель щелчков (интерфейс), таким образом вы можете контролировать щелчок из фрагмента примерно так:
А1) создать интерфейс
public interface ItemTouchListener {
void onCardClick(View view, int position);
boolean onCardLongClick(View view, int position);
}
A2) реализовать этот интерфейс в вашем фрагменте
public class YourFragment extends Fragment implements ItemTouchListener
A3) реализовать методы, которые вы создали в своем фрагменте
@Override
public void onCardClick(View view, int position) {
if (view.getId() == R.id.removeBtn){
//update your text
}else{
//other buttons
}
}
@Override
public boolean onCardLongClick(View view, int position) {
if (view.getId() == R.id.removeBtn){
//update your text
} else {
//other buttons
}
return true;
}
A4) создайте этот интерфейс в своем адаптере и установите его для своей кнопки
private ItemTouchListener onItemTouchListener;
public YourAdapter(List<Object> list, ItemTouchListener onItemTouchListener) {
this.onItemTouchListener = onItemTouchListener;
this.list = list;
}
removeBtn = view.findViewById(R.id.removeBtn);
removeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemTouchListener.onCardClick(v, getAdapterPosition());
}
});
removeBtn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
onItemTouchListener.onCardLongClick(view, getAdapterPosition());
return true;
}
});
A5) и теперь, когда вы создаете свой адаптер, он запрашивает ItemTouchListener, который вы можете дать ему, просто передавая «this»
YourAdapter adapter = new YourAdapter(this);
A6) вы также можете захотеть дать вашему адаптеру метод, подобный getCount, который возвращает размер списка
public int getCount(){
list.size();
}
и затем вы можете назвать это как myAdapter.getCount