Держите программную клавиатуру открытой, когда нажата клавиша ввода - PullRequest
7 голосов
/ 26 августа 2011

Хорошо, я пытаюсь предотвратить закрытие программной клавиатуры, когда пользователь нажимает кнопку "ОК" после редактирования текстового поля. На самом деле, я пытаюсь добиться: когда нажимается кнопка «ОК», поле анализируется и, если оно действительно, запускает другое действие. Это достаточно просто.

Но, когда поле недействительно, я хочу, чтобы программная клавиатура оставалась открытой. И это ... чертовски сложнее. Если кто-нибудь знает, как этого добиться ...

Заранее спасибо.

РЕДАКТИРОВАТЬ: под кнопкой ОК я подразумеваю кнопку ОК на программной клавиатуре.

1 Ответ

13 голосов
/ 29 августа 2011

Присоедините OnEditorActionListener к текстовому полю и верните true из его метода onEditorAction, когда 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;
    }
  }

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...