imeOptions не работает в AutoCompleteTextView
У меня проблема. Я работаю с Google Maps Api v2, и я создал базовую панель инструментов, как в приложении Google Maps. Там у меня есть AutoCompleteTextBox на нем.
Беда в том, что когда я нажимаю кнопку "ГОТОВО" (когда экран находится в портретном режиме), actionId==0 и KeyEvent == 0, но когда я нажимаю помеченную кнопку действия (когда экран находится в ландшафтном режиме) это работает, но кнопка Готово не работает.
В реализации кода Java я написал:
autoCompleteTextView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_DONE) {
//Log.i("AutoCompleteTextView", "Evento onEditorAction ... ");
search();
handled = true;
}
Log.i("AutoCompleteTextView", "Evento onEditorAction ... " + actionId);
return handled;
}
});
И в макете XML я использовал:
<AutoCompleteTextView
android:id="@+id/autoText"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginLeft="48dp"
android:layout_marginBottom="6dp"
android:layout_marginRight="6dp"
android:gravity="bottom"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/fontColorMenu"
style="@style/AutoCompleteTextViewAppTheme"
android:imeActionLabel="Buscar"
android:imeOptions="actionDone"
android:hint="Ingrese ciudad"
android:inputType="text"/>
Так что я не знаю, что не так, я работаю с targetSdkVersion 22, с моим Moto G на Android Lollipop и использую Android Studio 1.1.0.
1 ответ
Да ты прав. Потому что вы используете свой собственный текст "Buscar" вместо "Готово" по умолчанию. Чтобы преодолеть проблему, измените код метода EditorAction.
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == event.ACTION_DOWN) {
search();
handled = true;
}
return handled;
}