第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在RecyclerView中保存EditText內容

在RecyclerView中保存EditText內容

開滿天機 2019-10-06 15:50:21
我有清單項目,EditText不知道會有多少項目。當我輸入一些文本EditText然后向下滾動時RecyclerView,我遇到了問題,再向上滾動后,我的第一個文本就沒有了EditText。我想知道什么以及應該在哪里編寫代碼,以便在用戶鍵入文本或完成鍵入文本時(我本想使用來完成此操作TextWatcher),EditText將文本保存到文件中(我將其保存在中)。外部存儲中的txt文件)我應該onCreate在活動的方法中還是在適配器類中或其他地方這樣做嗎?這是一些代碼主要活動代碼 public class MainActivity extends Activity {    RecyclerView mRecyclerView;    MyAdapter mAdapter;    String[] mDataSet= new String[20];    @Override    protected void onCreate(Bundle savedInstanceState) {        // generating text for editText Views        for (int i = 0; i<=19; i++){        mDataSet[i]= "EditText n: "+i;    }        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);        mAdapter = new MyAdapter(mDataSet);        mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));        mRecyclerView.setItemAnimator(new DefaultItemAnimator());        mRecyclerView.setAdapter(mAdapter);        mRecyclerView.setHasFixedSize(true);    }我的適配器代碼public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {private String[] mDataset;public static class ViewHolder extends RecyclerView.ViewHolder {    // each data item is just a string in this case    public EditText mEditText;    public ViewHolder(View v) {        super(v);        mEditText = (EditText) v.findViewById(R.id.list_item_edittext);    }}public MyAdapter(String[] myDataset) {    mDataset = myDataset;}@Overridepublic MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,                                                 int viewType) {    View v = LayoutInflater.from(parent.getContext())            .inflate(R.layout.list_item, parent, false);    ViewHolder vh = new ViewHolder(v);    return vh;}沒有此“ addtextChangedListener”,我的代碼將無法正常工作,滾動時不保存編輯文本的內容。如果我添加此代碼,則當我滾動離開屏幕并返回的所有editText視圖時,會弄亂內容。
查看完整描述

3 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

像這樣在RecyclerView適配器中重寫onViewRecycled方法:


@Override

public void onViewRecycled(@NonNull ViewHolder holder) {

    mDataSet[holder.getAdapterPosition()] = holder.mEditText.getText().toString();

}


查看完整回答
反對 回復 2019-10-06
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

創(chuàng)建一個具有適配器數據大小的String數組。


例如: String[] texts = new String[dataSize];


在適配器內部的onBindViewHolder方法上,將TextChangedListener添加到Textview。


例如:-


@Override

    public void onBindViewHolder(Viewholder holder, int position) {


//binding data from array 

   holder.yourEditText.setText(texts [position]);

   holder.yourEditText.addTextChangedListener(new TextWatcher() {


            @Override

            public void onTextChanged(CharSequence s, int start,

                    int before, int count) {

                //setting data to array, when changed

                texts [position] = s.toString();

            }


            @Override

            public void beforeTextChanged(CharSequence s, int start,

                    int count, int after) {

                //blank

            }


            @Override

            public void afterTextChanged(Editable s) {

                //blank

            }

        });



}


查看完整回答
反對 回復 2019-10-06
  • 3 回答
  • 0 關注
  • 2213 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號