Я использую вид ресайклера для добавления и удаления блоков с текстом редактирования, но когда я удаляю блок, а потом добавляю новый, информация из удаленного возвращается в новый, а мне нужно, чтобы чистый блок добавлялся
delete.setOnClickListener(v -> {
int position = getAdapterPosition();
try {
connector.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, connector.size());
notifyDataSetChanged();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
});
add.setOnClickListener(v -> {
int position = getAdapterPosition();
try {
connector.add(position + 1, "");
notifyItemInserted(position + 1);
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
});
ViewHolder заполнен:
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView delete;
TextInputEditText typeOfConnector;
@SuppressLint("CutPasteId")
public ViewHolder(View itemView) {
super(itemView);
delete = itemView.findViewById(R.id.iv_garbage);
typeOfConnector = itemView.findViewById(R.id.type_of_connector_et);
delete.setOnClickListener(v -> {
int position = getAdapterPosition();
try {
connector.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, connector.size());
notifyDataSetChanged();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
});
add.setOnClickListener(v -> {
int position = getAdapterPosition();
try {
connector.add(position + 1, "");
notifyItemInserted(position + 1);
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
});
}
}
вы можете увидеть это сейчас
Прежде всего, вам не нужны все три команды:
notifyItemRemoved(position);
notifyItemRangeChanged(position, connector.size());
notifyDataSetChanged();
Для вашего случая использования: просто notifyItemRemoved(position);
подойдет
Теперь в вашем методе bindViewHolder вам нужно установить Edittext в соответствующую строку в соединителе.
В bindViewHolder я установил текст для et (""), и это сработало, спасибо. если нет ответа лучше, я подтверждаю ваш
Пожалуйста, добавьте код, в котором вы заполняете
ViewHolder
данными