gpt4 book ai didi

android - 将输入的值保存到 RecyclerView 的 EditTexts 中

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:33 25 4
gpt4 key购买 nike

我有一个 RecyclerView,其中每一行还有一个允许用户输入值的 EditText

但是,当用户旋转屏幕时,这些值会重置为其默认空白值。

所以我想将值保存在 ListMap 中,以便在恢复时重新填充列表。

但是我不知道如何“遍历当前列表”并获取 EditTexts 并提取值。

最佳答案

如果您以下面的 RecyclerView.Adapter 实现为例,您会注意到一些事情。包含数据的 Liststatic ,这意味着它不会在方向更改时重置。我们正在向 EditText 添加一个 TextWatcher 以允许我们在修改值时更新它们,我们还通过添加一个 标签来跟踪位置 到 View 。请注意,这是我的特殊方法,有很多方法可以解决这个问题。

演示

enter image description here

适配器

public class SampleAdapter extends RecyclerView.Adapter{
private static List<String> mEditTextValues = new ArrayList<>();

public SampleAdapter(){
//Mocking content for the editText
for(int i=1;i<=10;i++){
mEditTextValues.add("I'm editText number "+i);
}
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new CustomViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.edittext,parent,false));
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
CustomViewHolder viewHolder = ((CustomViewHolder)holder);
viewHolder.mEditText.setTag(position);
viewHolder.mEditText.setText(mEditTextValues.get(position));
}
@Override
public int getItemCount() {
return mEditTextValues.size();
}

public class CustomViewHolder extends RecyclerView.ViewHolder{
private EditText mEditText;
public CustomViewHolder(View itemView) {
super(itemView);
mEditText = (EditText)itemView.findViewById(R.id.editText);
mEditText.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
public void afterTextChanged(Editable editable) {}
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if(mEditText.getTag()!=null){
mEditTextValues.set((int)mEditText.getTag(),charSequence.toString());
}
}
});
}
}
}

(gif 可能看起来像是正在重置,因为它在循环中,不是)

关于android - 将输入的值保存到 RecyclerView 的 EditTexts 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36872909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com