Вам нужен какой-то способ отслеживать, какие кнопки должны быть скрыты, а какие нет.Это ответственность вашего адаптера, поэтому вам нужно добавить некоторую форму массива, чтобы отслеживать состояние кнопок там.SparseBooleanArray
- эффективный и подходящий вариант:
private SparseBooleanArray hideButtons = new SparseBooleanArray();
В onBindView
необходимо обновить представление для текущего привязываемого элемента, включая обновление видимости кнопки:
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
holder.seeAnswer.setVisibility( hideButtons.get(position, false) ? View.GONE : View.VISIBLE );
...
}
И, конечно же, вам нужно установить видимость и сохранить ее в SparseBooleanArray
при нажатии кнопки.Поместить этот обработчик события в ViewHolder
- хороший вариант:
class ViewHolder extends RecyclerView.ViewHolder{
Button seeAnswer;
...
ViewHolder(View itemView) {
super(itemView);
seeAnswer = (Button) itemView.findViewById(R.id.btnSeeAnswer);
seeAnswer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
seeAnswer.setVisibility(View.GONE);
hideButtons.put(getAdapterPosition(), true);
}
});
...
}
}
Это проверенное и проверенное решение, поэтому, если вы будете следовать этому, но оно все равно не будет работать, причина вашей проблемыгде-то еще.