Как я могу скрыть / отключить готовую кнопку на программной клавиатуре Android? - PullRequest
0 голосов
/ 31 января 2019

Я работаю с Amazon S3 api.

Проблема: Работа с TextWatcher.Как только пользователь вводит более 3 символов в тексте редактирования, вызывается API, и он показывает совпадающие результаты.Проблема начинается, как только пользователь нажимает кнопку «Готово / ввод» на программной клавиатуре, снова вызывается API и выполняется поиск снова.Могу ли я как-нибудь остановить этот второй звонок?Спасибо!

Ответы [ 5 ]

0 голосов
/ 31 января 2019

Вы можете сделать как editText.setImeOptions(EditorInfo.IME_ACTION_NONE);

, но это не скроет Enter / Next

0 голосов
/ 31 января 2019

Добавьте

android:maxLines="1"

к вам xml и кнопка ввода должна быть отключена.

0 голосов
/ 31 января 2019

вы можете изменить его на xml:

<EditText
...
android:imeOptions="actionNone"/>

или на код:

editText.setImeOptions(EditorInfo.IME_ACTION_NONE);

Она удалит кнопку «Готово» всякий раз, когда пользователь активирует программную клавишу

0 голосов
/ 31 января 2019

просто обработайте готовый клик и скройте программную клавиатуру

editText = (EditText) findViewById(R.id.edit_text);

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
           // hide your keyboard here
           try {
                   InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
                   if (inputMethodManager != null && activity.getCurrentFocus() != null) {
             inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
                   }
           } catch (Exception e) {
             e.printStackTrace();
           }
           return true;
        }
        return false;
    }
});
0 голосов
/ 31 января 2019

Может быть, вы можете попытаться переопределить метод onKeyListener в вашем элементе управления, чтобы он мог определить, является ли нажатая клавиша «enter», и добавить код, который вы хотите, чтобы ваша клавиша «enter» делала?

edittext.setOnKeyListener(new View.OnKeyListener() {

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