我正在尝试确定EditText和TextChangedListener之间的行为。到目前为止我还没有真正理解,我无法确定是否在EditText上使用SetText()方法触发TextChangedListener内部的方法,例如afterTextchanged方法。
当用户将字符输入EditText时会触发TextChangedListener事件,还是在调用SetText()时触发它。
答案 0 :(得分:1)
正如Melllvar所说,您可以通过引用TextView
并添加TextChangedListener
来自行测试此理论。例如:
TextView tV = new TextView(this); // Or reference one.
tV.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
Toast.makeText(MainActivity.this, "BeforeTextChanged", Toast.LENGTH_SHORT).show();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Toast.makeText(MainActivity.this, "OnTextChanged", Toast.LENGTH_SHORT).show();
}
@Override
public void afterTextChanged(Editable s) {
Toast.makeText(MainActivity.this, "AfterTextChanged", Toast.LENGTH_SHORT).show();
}
});
调用tV.setText("this is a test");
希望这有帮助。