初始化RecyclerView
LinearLayoutManager manager = new LinearLayoutManager(this);
mRecycler.setLayoutManager(manager);
ArrayList dataList = new ArrayList<TestBean>();
for (int i=0;i<15;i++){
TestBean bean =new TestBean();
bean.position = i+"";
dataList.add(bean);
}
adapter =new TextAdapter(R.layout.item_text_edit,dataList);
mRecycler.setAdapter(adapter);
//是指适配器,防止复用,数据错乱


数据模型bean

item布局文件,让你解忧,从此告别 类似问题

写作不易,后面是适配器全部代码
class TextAdapter extends BaseQuickAdapter<TestBean, BaseViewHolder>{
private Map<String,String> dataMap = new HashMap<String,String>();
public TextAdapter(int layoutResId, ArrayList<TestBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, TestBean item) {
helper.setText(R.id.text_postion,item.position);
EditText edit = helper.getView(R.id.text_edit);
edit.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (item.intercepter){
PrintUtilsJava.pringtLog("onTextChanged- 3 -->拦截了");
item.intercepter = false;
return;
}
PrintUtilsJava.pringtLog("onTextChanged- 3 -->"+s.toString().trim());
item.editNumber = s.toString().trim();
dataMap.put(helper.getLayoutPosition()+"",s.toString().trim());
}
@Override
public void afterTextChanged(Editable s) {
}
});
PrintUtilsJava.pringtLog("onTextChanged-- 0->"+item.editNumber);
if (dataMap.containsKey(helper.getLayoutPosition()+"")){
item.intercepter = true;
edit.setText(dataMap.get(helper.getLayoutPosition()+"")+"");
PrintUtilsJava.pringtLog("onTextChanged- 1 -->"+dataMap.get(helper.getLayoutPosition()+"")+"");
}else{
PrintUtilsJava.pringtLog("onTextChanged-- 4->"+item.editNumber);
item.intercepter = true;
edit.setText("");
}
}
public void printAllNumber() {
for (Map.Entry<String, String> entry : dataMap.entrySet()) {
System.out.println("printAllNumber= 位置:" + entry.getKey() + " 输入框: " + entry.getValue());
}
}
public void addOne() {
TestBean bean = new TestBean();
bean.position = mData.size()+"";
mData.add(bean);
notifyDataSetChanged();
}
}

这篇博客介绍了如何在Android中初始化RecyclerView,并结合LinearLayoutManager和BaseQuickAdapter来展示数据。通过创建TestBean数据模型和item布局文件,博主展示了如何处理EditText的文本变化,防止数据错乱。在适配器中,博主实现了数据监听和更新,确保每个输入框的数据能够正确保存。此外,还提供了添加新条目的功能。
3206

被折叠的 条评论
为什么被折叠?



