Обработка события изменения ключа EditText с типом ввода TEXT

pratik03 спросил: 03 ноября 2018 в 09:11 в: android

Мой вариант использования - ограничить пользователя после того, как он ввел 4 строки в текстовом поле. Настройка maxLines не будет работать, чтобы остановить пользователя.

Я удивлен, что Android не предоставляет событие нажатия / увеличения клавиши, когда тип ввода InputType.TYPE_CLASS_TEXT. Я получаю событие для всех других типов. Ниже приведен мой код.

        EditText et = new EditText(this);
        et.setMaxLines(3);
        et.setSingleLine(false);
        et.setInputType(InputType.TYPE_CLASS_TEXT);
        et.setHint("First edit text");
        et.setKeyListener(this); // This key listener is also not working.
        et.setOnKeyListener(new View.OnKeyListener() { 
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.d("MainActivity.class", "event received"); // This event is never called.
                return false;
            }
        });@Override
public int getInputType() {
    return InputType.TYPE_CLASS_NUMBER;
}@Override
public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) { // THIS EVENT HITS ONLY WHEN INPUT TYPE IS OTHER THAN TEXT.
    return false;
}@Override
public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {
    return false;
}@Override
public boolean onKeyOther(View view, Editable text, KeyEvent event) {
    return false;
}@Override
public void clearMetaKeyState(View view, Editable content, int states) {}

даже onKeyDown() действия также не работает.

Когда я устанавливаю InputType.TYPE_CLASS_NUMBER или InputType.TYPE_CLASS_PHONE, все работает нормально.

PS Я хочу получить ключ ewvent для ввода типа текста.

0 ответов