如果 setText() EditText 移除焦点

EditText remove focus if setText()

我有一个 EditText 作为 textChangedListener

当我使用 myEditText.setText("") 时会发生两件事:

  1. 弹出键盘
  2. texChangedListener (TextWatcher) 被触发。

我想知道在我们使用setText()

时是否有办法删除任何相关事件

我用

解决的第一个问题
if (getWindow() != null) {
       getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
} 

就在 myEditText.setText("") 之前,但我仍然认为这应该是一种在特定情况下禁止触发事件的方法。

关于 2 点的任何想法或我应该如何处理此事件?

将 editText 更改侦听器设置为 null,然后将其文本设置为空字符串,最后再次设置更改侦听器。

myEditText.removeTextChangedListener(textWatcher);
myEditText.setText("");
myEditText.addTextChangedListener(textWatcher);