前言
这个问题是做项目的时候发现的,由于表单内容不确定,需要从后台动态获取,所以我使用了RecyclerView+EditText,结果运行的时候发现会有数据错乱,现在问题已经解决了,就记录一下,如果能帮到更多的人当然是再好不过了!
解决方案
1.在Adapter中添加一个Map用来存放EditText的值
val mMap = mutableMapOf<Int, String>()
2.给EditText设置一个Tag,Tag为position
editText.tag = position
3.给EditText设置一个文本改变监听
editText.addTextChangedListener(object : TextWatcher() {
//... 省略两个方法
override fun afterTextChanged(s: Editable?) {
if (editText.tag == position && editText.hasFocus()) {
mMap[position] = s.toString()
}
}
})
4.给EditText设置值
editText.setText(mMap[position])