Android: не могу понять, как использовать setImeActionLabel - PullRequest
25 голосов
/ 08 октября 2009

Я хочу изменить стандартную метку «Готово», которая отображается на виртуальной клавиатуре. Вот что я попробовал без удачи:

mSearchInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
mSearchInput.setImeActionLabel(getString(R.string.search_action_label), EditorInfo.IME_ACTION_DONE);

Я Я могу, однако, справиться с нажатием на эту кнопку, с этим:

mSearchInput.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            performSearch();
            return true;
        }
        return false;
    }
});

Я не знаю, как мне поменять метку на этой кнопке в данный момент.

1 Ответ

27 голосов
/ 09 октября 2009

imeActionLabel устанавливает метку для кнопки, которая появляется в правом верхнем углу в полноэкранном режиме IME (т. Е. Когда ваш телефон находится в альбомной ориентации). Если вы хотите изменить кнопку в правом нижнем углу клавиатуры, вы можете передать определенные флаги imeOptions.

Насколько я знаю, для этой кнопки вы ограничены определенным набором действий (полный список поддерживаемых флагов см. здесь ), но, поскольку вам, похоже, нужна кнопка поиска, все, что вам нужно сделать, это слегка настроить первую строку и использовать IME_ACTION_SEARCH:

mSearchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

Имейте в виду, точный вид этой кнопки будет зависеть от метода ввода. Клавиатура Android по умолчанию показывает увеличитель для флага поиска, в то время как сенсорный ввод (клавиатура HTC), кажется, совершенно не знает об этом флаге, все еще показывая кнопку возврата.

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