对于那些了解EditText和(滚动)RecyclerView的人, 如何查看编辑文本是否已被编辑? RecyclerView从myList加载数据。 滚动时,TextWatcher会自动更新以保存edittext当前显示的myList中的位置。代码在这里:
public class CustomTextWatcher3 implements TextWatcher {
private int position;
public void updatePosition(int position) {
this.position = position;
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
Double x;
if (matchPattern.isDouble(charSequence.toString())) {
x = Double.valueOf(charSequence.toString());
} else {
x = 0.0;
}
myList.get(position).setValue(x);
}
@Override
public void afterTextChanged(Editable editable) {
}
}
确定是否已更改的一种方法是检查是否
myList.get(position).getValue()
等于
的双精度值charSequence.toString() inside onTextChanged()
但每次RecyclerView滚动时都会调用(OnTextChanged)(EditText会被回收,如果您实际编辑文本并不重要,这可能非常昂贵)。 问题是我的列表在你滚动时总是得到更新
myList.get(position).setWasted(x);
如果您正在编辑它,无关紧要。如果你要检查edittext中的文本是否与myList中的文本相同,那就是丑陋的。[/ p>
任何替代方案?建议?什么?
有了爱, Jack Smother