簡體   English   中英

在recyclerview中刪除edittext值

[英]Delete edittext value in the recyclerview

當前:我有一個回收站視圖,其中有刪除按鈕和每個項目的編輯文本。

回收者視圖中的每個項目都包含用戶可以輸入的編輯文本。

場景是我在列表中有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();

采用

edittext.setText(""); 

清除文本,其中edittext是對EditText的引用。 由於您還沒有發布完整的代碼,因此我只能對此進行指導。 如果您提供更多代碼,那么我可以為您提供更多幫助。

嘗試此代碼..在執行單擊事件時,在onBindView方法的適配器類中,然后將edittext值設置為null。

edittext.setText(""); 

如果您在活動布局中使用edittext框,則使接口進入適配器類並以這種方式處理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.
        }
    });
}

之后,在活動適配器中綁定到回收器視圖,這意味着適配器不為null,然后在行下方調用。

        adpater.setOnItemClick(new RecyclerViewAdpater.OnItemClick() {
        @Override
        public void getPosition(String data) {
            // hear perform any operation.
            editTextbox.setText("");
            adpater.notifyDataSetChanged();
        }
    });

一件事是肯定的。 您將需要使用

edittext.setText("")清除值。

但是您需要小心。 您需要將其保留為刪除行函數中的第一行,即,從列表中刪除該edittext項之前。

這是我的代碼:我已經將“刪除行”功能放在Recyclerview Adapter的onBindViewHolder()方法中。

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();

            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM