0

EditText字段有一个TextChangedListenerwith setting/clearing the error inafterTextChanged()和 with setting/clearing the error in (fragments) onCreateView()

我正在评估按下“后退”按钮时该字段是否有错误并且它的作用就像一个魅力;)

当焦点在键盘打开的字段上时,问题就来了。然后,按回关闭键盘(显然)从EditText. 因此,当在下一次后按时评估错误时,没有错误(并且发生了意想不到的事情)。

布局更改(由软键盘引起)是否有可能从EditText?

当键盘关闭后另一个(文本字段)被聚焦时,错误就在那里。

顺便提一句。我已经尝试过这个解决方案,但永远不会调用 onKeyPreIme...

4

1 回答 1

0

这对我有用:

theEditText.addOnLayoutChangeListener(new OnLayoutChangeListener() {

  @Override
  public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft,
      int oldTop, int oldRight, int oldBottom) {
    Log.d(this.getClass().getSimpleName(), "onLayoutChange()");
    checkValidity(theEditText.getText()); // sets or clears the error on theEditText
  }
});

不能在根视图上设置监听器,因为它在布局每个元素时被调用。

警告:仅适用于 API 11 +。

于 2013-11-12T14:57:41.020 回答