Как получить «Готово» для отображения и выхода из клавиатуры на AutoCompleteTextiView в Android? - PullRequest
0 голосов
/ 03 апреля 2020

Моя проблема: Я использую список параметров AutoCompleteTextView для пользователя и, несмотря на наличие активности xml, настроенной с помощью android:imeOptions="actionDone" Клавиатура по-прежнему обеспечивает возможность возврата, вместо этого, представляя клавиатуру с опцией «Готово».

Что я пробовал: Я искал несколько сообщений, но не смог найти одно с этой спецификацией c выпуск. Поэтому я попробовал следующее решение, опубликованное из другого поста, применимого для EditText, чтобы я мог применить это действие «Готово» к нескольким AutoCompleteTextViews в рамках одного и того же действия (опубликовано здесь ).

Опять же, проблема в том, что, несмотря на то, что XML AutoCompleteTextView настроен на actionDone, на клавиатуре отображается стрелка возврата.

XML

 <AutoCompleteTextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:id="@+id/viewSource"
                    android:hint="@string/hint_source"
                    android:imeOptions="actionDone"
                    android:padding="5dp"
                    android:background="@color/colorWhite"
                    app:layout_constraintStart_toEndOf="@id/lblViewSource"
                    android:layout_marginStart="5dp"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:textSize="12sp"
                    android:layout_marginEnd="5dp"
                    app:layout_constraintBaseline_toBaselineOf="@+id/lblViewSource"/>

Код вызова AutoCompleteTextView

sourceTitle.setOnEditorActionListener(new DoneOnEditorActionListener());

Код пользовательского класса для управления «Готово» и клавиатурой закрыть

class DoneOnEditorActionListener implements AutoCompleteTextView.OnEditorActionListener {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
            return true;
        }
        return false;
    }
}

1 Ответ

0 голосов
/ 05 апреля 2020

Следующее в конечном итоге решило мою проблему. Как только я добавил и определил inputType в упражнении XML, появилась кнопка «Готово». Таким образом, кажется, что потребности inputType определены с помощью imeOptions, иначе кнопка «Готово» не появится. Это было одно из предложений по следующей ссылке, хотя ни один из ответов не был утвержден.

Готово не работает в softKeyboard в Autocomplete TextView в android

android:inputType="text"
android:imeOptions="actionDone"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...