找出是否已在RecyclerView"中编辑了EditText"使用TextWatcher

时间:2016-01-15 13:51:36

标签: android android-edittext android-recyclerview textwatcher

对于那些了解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

0 个答案:

没有答案