EditText的SetText方法和TextChangedListener

时间:2016-01-28 01:27:24

标签: android android-edittext

我正在尝试确定EditText和TextChangedListener之间的行为。到目前为止我还没有真正理解,我无法确定是否在EditText上使用SetText()方法触发TextChangedListener内部的方法,例如afterTextchanged方法。

当用户将字符输入EditText时会触发TextChangedListener事件,还是在调用SetText()时触发它。

1 个答案:

答案 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");

时,所有方法确实都会触发

希望这有帮助。