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

StackOverflow https://stackoverflow.com/questions/1538331

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

mSearchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top