Android:imeOptions не перейти к следующему точному EditText
У меня есть 2 EditText с идентификатором (et_1 and et_2)
в макете, и я установил
для et_1
android:imeOptions="actionNext",
android:nextFocusForward="@+id/et_2"
когда et_1
фокусируется, и программная клавиатура показывает "Далее", а когда я нажимаю "Далее", фокус не переходит на et_2
, но к другому EditText в другом макете фрагмента. Почему так?
Как заставить фокус перейти на et_2?
Благодарю.
3 ответа
Решение
Попробуйте изменить,
android:nextFocusForward="@+id/et_2"
в
android:nextFocusDown="@+id/et_2"
Я надеюсь, что это помогает!
Я понял, что ссылки не скрывают клавиатуру
android:nextFocusDown="@+id/et_2"
Чтобы скрыть клавиатуру, добавьте actionDone
<EditText
android:id="@+id/editTextEnterAmount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Amount"
android:imeOptions="actionDone"
/>
У меня была такая же проблема в одном из моих приложений. Вместо этого я включил слушателя в свою деятельность, когда нажал "Далее", а затем просто вручную изменил фокус. Как это:
final EditText et_1 = (EditText)findViewById(R.id.et_1);
final EditText et_2 = (EditText)findViewById(R.id.et_2);
// listen on the et_1 EditText
et_1.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_ACTION_NEXT) { // "Next was selected"
et_2.requestFocus(); // focus on et_2
}
return true;
}
});