当按下回车键时保持软键盘打开

7
我正在试图防止软键盘在用户编辑文本字段后按下“确定”按钮时关闭。 实际上,我想实现的是:当按下“确定”按钮时,解析该字段,并且如果有效,则开始另一个活动。 这很容易实现。
但是,如果该字段无效,我希望软键盘保持打开状态。 而这更加复杂。 如果有人知道如何做到这一点...
提前致谢。
编辑:我所说的“确定”按钮是指软键盘上的“确定”按钮。
1个回答

13

在您的文本字段中附加OnEditorActionListener并从其onEditorAction方法返回true,当actionId等于IME_ACTION_DONE时。这将防止软键盘隐藏:

EditText txtEdit = (EditText) findViewById(R.id.txtEdit);
txtEdit.setOnEditorActionListener(new OnEditorActionListener() {

  public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
    if (actionId == EditorInfo.IME_ACTION_DONE) {
      // your additional processing... 
      return true;
    } else {
      return false;
    }
  }

});

1
根据您的EditText的android:imeOptions值,您可能需要检查actionId是否为IME_NULLIME_ACTION_GO等。 - Idolon
运行得非常完美!一直在寻找这个。 - zeitue
感谢提醒,@Idolon。我的actionId == 66,但我在EditorInfo类中找不到这个常量。 - MrUser
这在较新版本的安卓系统和模拟器上都不起作用。 - AlwaysConfused
@AlwaysConfused 不怪你,我发表这个答案已经超过6年了 :). 但是谢谢你让我知道 - 我会检查最新版本中的更改并相应地更新答案。 - Idolon
@Idolon 你好,你知道如何保持键盘开启吗?我找不到“新”的方法。 - Seeven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接