У меня есть набор из четырех представлений EditText, которые используются для ввода 4-значного кода.Для каждого из них установлено максимальное значение длины 1, поскольку они содержат одну из этих цифр.
Теперь я хочу, чтобы мои пользователи могли скопировать четырехзначный код и вставить его непосредственно в 4 поля.
Я попытался обнаружить событие вставки, используя:
@Override
public boolean onTextContextMenuItem(int id) {
boolean consumed = super.onTextContextMenuItem(id);
switch (id){
case android.R.id.cut:
onTextCut();
break;
case android.R.id.paste:
onTextPaste();
break;
case android.R.id.copy:
onTextCopy();
}
return consumed;
}
как в этот вопрос , но у меня нет способа вернуть вставленный текст в обратном вызове.
Я также пытался с помощью:
переопределить веселье доTextChanged (s: CharSequence ?, start: Int, count: Int, после: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
Но изПри вставке текста я получаю только 1 символ, я думаю, потому что maxLength установлен на 1.
Как мне добиться желаемого поведения?