<EditText
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:imeOptions="actionNext"
android:inputType="textNoSuggestions|textCapCharacters"
android:maxLength="3"
android:hint="ABC"
/>
Также есть еще один EditText
, который должен быть сфокусирован, когда все 3 символа заполнены в name
.
name.addTextChangedListener(object: TextWatcher {
override fun afterTextChanged(s: Editable?) {
// Move to surname when all three symbols are entered.
if (name.text.toString().length == 3) {
surname.requestFocus()
}
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { }
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { }
})
. Он работает правильно, когда мы вводим 1, 2 и 3 символа.Но когда мы выбираем последнюю позицию в name
, нажимаем новую букву на клавиатуре, ничего не происходит.Я пытался поймать нажатие клавиши с помощью
name.setOnKeyListener { v, keyCode, event ->
if (name.text.getText().length == 3) {
surname.requestFocus()
}
false
}
, но событие не происходит.Как переместить фокус?