android 如何防止recyclerView在滚动时重置edittext?

gdx19jrr  于 2022-12-28  发布在  Android
关注(0)|答案(1)|浏览(158)

我试图创建一个列表与回收视图(下图),并在我有一个编辑文本,文本视图和这些视图可以改变。

然而,如果回收视图决定重新扁平化它,编辑文本和文本视图中的值将被重置,我想知道的是如何阻止回收视图这样做?我已经在谷歌上搜索了一段时间,我试图覆盖getItemViewType,但仍然没有运气。

mzsu5hc0

mzsu5hc01#

试试这个方法,
1.使用具有项目edittext值的列表。//edittextlist

HashMap<Integer,String> edittextlist=new HashMap<>();

如果您想永久存储它,则使用 SharedPref
2.选择将是唯一的项目数据//position
3.根据edittextlist设置edittext值。

if(edittextlist.get(position)!=null) {
        holder.edittext.setText(edittextlist.get(position));
    }
    else {
       holder.edittext.setText("");
    }

4.将监听器添加到编辑文本,

holder.edittext.addTextChangedListener(new TextWatcher() {
   @Override
   public void onTextChanged(CharSequence s, int start, int before, int count) {}

   @Override
   public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

   @Override
   public void afterTextChanged(Editable s) {
       edittextlist.put(position,s.toString);
       }
});

相关问题