同时监听多个edittext后 代码执行的次数

@Override

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 在第一个edittext中输入后 在logcat中只有一条输出 但是在第二个edittext中输入一个数字之后 就会在logcat中输入两个日志 被执行了两次图片描述

回答:

我不太清楚原因,从代码上看没什么问题,afterTextChanged会在输入后触发,setText执行后触发。
其次如果存在EditText addTextChangedListener 执行两次也会执行,因为addTextChangedListener 为add,里面是一个list,可以存在多个,不像onclick是单个的。

以上是 同时监听多个edittext后 代码执行的次数 的全部内容, 来源链接: utcz.com/p/172599.html

回到顶部