Моя проблема: Я использую список параметров 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;
}
}