W layoucie XML można określić, android:imeOptions="actionNext"
który Next
przycisk dodaje w wirtualnej klawiaturze i po kliknięciu na niego - fokus przeskakuje do następnego pola.
Jak to zrobić programowo - np. W oparciu o fokus wyzwalacza zdarzenia, aby przejść do następnego pola?
android
android-widget
Laimoncijus
źródło
źródło
Wyszukaj następne pole, które można zaznaczyć, i wywołaj
requestFocus()
.źródło
Tylko sugestia, jeśli używasz
EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);
to nie działa, upewnij się, że Twój EditText używa jednej linii.
źródło
Zawsze istnieje konieczność dodania dodatkowych klawiszy poza domyślnymi klawiszami dostępnymi na wirtualnej
QWERTY
klawiaturze.Korzystanie z XML
<EditText android:text="@+id/EditText01" android:id="@+id/EditText01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:imeOptions="actionDone"/>
By Programmatic Way
EditorInfo
Jest najbardziej użyteczna klasa gdy masz do czynienia z wszelkiego rodzaju wprowadzanych przez użytkownika w aplikacji Android.IME_ACTION_DONE:
Ta akcja wykonuje operację „gotową” bez wprowadzania danych, a edytor IME zostanie zamknięty.EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);
Więcej informacji można znaleźć pod adresem http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html
źródło
Wisiorek kotlin
editText.imeOptions = EditorInfo.IME_ACTION_DONE
źródło
editText.setLines(1); editText.setSingleLine(true); editText.setImeOptions(EditorInfo.IME_ACTION_GO);
Rozwiązuję problem upewniając się za pomocą jednej linii i przechodząc do następnego editText po kliknięciu enter
źródło
W moim przypadku ustaw imeOptions, aby rozwiązać problem.
edtAnswer.maxLines = 1 edtAnswer.inputType = InputType.TYPE_CLASS_TEXT edtAnswer.imeOptions = EditorInfo.IME_ACTION_NEXT
źródło
Możesz to zrobić przez
edittext.imeOptions = EditorInfo.IME_ACTION_DONE //for done button
lub
edittext.imeOptions = EditorInfo.IME_ACTION_NEXT //for next button
Ale ... musisz zrozumieć, że jeśli używasz filtrów dla edittext, musisz ustawić
edittext.setSingleLine()
źródło