Удалить значение 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. Так как вы еще не опубликовали полный код, я могу помочь вам только в этом. Если вы предоставите больше кода, то я могу помочь вам больше.

Другие вопросы по тегам