Подтвердить что ты не робот

Android: не могу понять, как использовать setImeActionLabel

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

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

I am, способный, однако, обрабатывать щелчок по этой кнопке с помощью этого:

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;
    }
});

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

4b9b3361

Ответ 1

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

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

mSearchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

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