Нажатие кнопки "Поиск" для Android на клавиатуре

Я разрабатываю свою собственную клавиатуру.

Как обрабатывать нажатие кнопки "Поиск" в случае, если наша клавиатура открылась с IME_ACTION_SEARCH параметр?

У меня есть следующий код, но, к сожалению, в случае поиска он не работает. В обычной ситуации с кнопкой "Готово" все работает хорошо.

        final int options = this.getCurrentInputEditorInfo().imeOptions;
        final int actionId = options & EditorInfo.IME_MASK_ACTION;

        switch (actionId) {
            case EditorInfo.IME_ACTION_SEARCH:
                ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SEARCH));
                break;
            default:
                ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
        }

Спасибо

1 ответ

Решение

Я нашел решение сделать это:

endDefaultEditorAction(true);

это метод InputMethodService

Полный код:

    case Keyboard.KEYCODE_DONE:
        final int options = this.getCurrentInputEditorInfo().imeOptions;
        final int actionId = options & EditorInfo.IME_MASK_ACTION;

        switch (actionId) {
            case EditorInfo.IME_ACTION_SEARCH:
                sendDefaultEditorAction(true);
                break;
            case EditorInfo.IME_ACTION_GO:
                sendDefaultEditorAction(true);
                break;
            case EditorInfo.IME_ACTION_SEND:
                sendDefaultEditorAction(true);
                break;
            default:
                ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
        }

        break;
Другие вопросы по тегам