Удалить значение edittext в обзоре переработчика
В настоящее время: у меня есть вид переработчика, где есть кнопка удаления и текст редактирования для каждого элемента.
Каждый элемент в представлении переработчика содержит текст редактирования, который может ввести пользователь.
Сценарий: у меня 4 элемента в списке, в результате чего 4 текста редактирования.
Когда я пытаюсь заполнить, отредактируйте текст в элементе (n) и попытался удалить элемент (n) и добавить снова. Значение редактируемого текста в редактируемом тексте остается.
Как я могу очистить значение редактируемого текста?
Вот мой текущий код, когда я пытаюсь удалить определенный элемент в списке:
mHeaderText.remove(pos);
ArrayList<Integer> temp = new ArrayList<Integer>();
for (int i = 1 ; mHeaderText.size() >= i ; i++) {
temp.add(i);
Log.d("ADDDING","ADDDING"+i);
}
mHeaderText.clear();
mHeaderText.addAll(temp);
notifyDataSetChanged();
2 ответа
Попробуйте этот код. В классе адаптера в методе onBindView при выполнении события click установите значение edittext в значение null.
edittext.setText("");
и если ваше поле редактирования текста в макете активности, то превратите интерфейс в класс адаптера и обработайте событие click следующим образом...
OnItemClick onItemClick;
public void setOnItemClick(OnItemClick onItemClick) {
this.onItemClick = onItemClick;
}
public interface OnItemClick {
void getPosition(String data); //pass any data to shared it.
}
после этого..
@Override
public void onBindViewHolder(ItemViewHolder holder, final int position) {
// below code handle click event on recycler view item.
final String data = mStringList.get(position);
holder.textView.setText(data);
holder.firstButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onItemClick.getPosition(data); // shared data.
}
});
}
после этого в действии привязка адаптера к представлению переработчика означает, что адаптер не равен нулю, а затем вызывается ниже
adpater.setOnItemClick(new RecyclerViewAdpater.OnItemClick() {
@Override
public void getPosition(String data) {
// hear perform any operation.
editTextbox.setText("");
adpater.notifyDataSetChanged();
}
});
Одно можно сказать наверняка. Вам нужно будет использовать
edittext.setText("")
очистить значение.
Но вы должны быть осторожны. Вы должны сохранить это в качестве первой строки в вашей функции удаления строки, т.е. до того, как вы удалите этот элемент edittext из вашего списка.
Вот мой код: я поместил функцию "удалить строку" внутри метода onBindViewHolder() адаптера Recyclerview.
holder.delImgView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// You need to place it in the start
holder.editText.setText("");
// Remove the item on remove/button click
myArrayList.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, myArrayList.size());
Toast.makeText(context, "Removed : " + position +" item", Toast.LENGTH_SHORT).show();
}
});
Использование
edittext.setText("");
очистить текст, где edittext является ссылкой на EditText. Так как вы еще не опубликовали полный код, я могу помочь вам только в этом. Если вы предоставите больше кода, то я могу помочь вам больше.