2 qq 32360535 qq_32360535 于 2016.01.19 16:54 提问

关于监听多个edittext的问题

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1=(EditText) findViewById(R.id.et1);
et2=(EditText) findViewById(R.id.et2);
EditText[] arr=new EditText[]{et1,et2};
for (int i = 0; i < arr.length; i++) {
arr[i].addTextChangedListener(new NewTextWatcher(arr[i]));

    }

}

class NewTextWatcher implements TextWatcher{
    private EditText editText;


    public NewTextWatcher(EditText editText) {
        this.editText = editText;

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void afterTextChanged(Editable s) {
        String msg4=editText.getText().toString();
        System.out.println(msg4);

    }
}
这个代码在执行的时候 在edittext中输入某个值之后下面的内部类被执行了两次 这是什么原因啊

1个回答

caozhy
caozhy   Ds   Rxr 2016.01.19 21:14

调试下,看看arr[i].addTextChangedListener(new NewTextWatcher(arr[i]));是不是执行了2次。

qq_32360535
qq_32360535 恩 谢谢啊!!已经解决了 是因为是 多次执行addTextChangedListener的关系 add 所以会累加
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!