gpt4 book ai didi

android - 即使在添加观察器之前设置了文本,也会调用 TextWatcher

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:45:00 25 4
gpt4 key购买 nike

在 android Activity 中,我首先恢复 EditText 中的文本,然后向其添加 TextWatcher。

private static int WC = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("TextWatcherTest", "onCreate:\t" +CLASS_NAME);
setContentView(R.layout.main);

EditText et = (EditText)findViewById(R.id.editText);
Log.e("TextWatcherTest", "Set text xyz");
et.setText("xyz");

et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void afterTextChanged(Editable s) {
Log.e("TextWatcherTest", "afterTextChanged:\t" +s.toString());
}
});
}

但是当我运行该 Activity 时,即使在设置文本后添加了 Watcher 本身,也会调用 afterTextChanged 方法。所以日志输出类似于

onCreate:    LifecycleMainSet text xyz// screen rotationonCreate:    LifecycleMainSet text xyzafterTextChanged:    xyz    2

TextWatcher 中的计数器显示调用的观察器是在 EditText 中设置文本之后添加的观察器。知道为什么会发生这种情况以及如何防止这种情况发生吗?

最佳答案

解决方案是将您的 addTextChangedListener 移动到 onPostCreate 方法。一切都会迎刃而解。

关于android - 即使在添加观察器之前设置了文本,也会调用 TextWatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5151095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com