Android [ENTER] - действие клавиши многострочного редактирования текста в диалоговом окне

Я создал диалог с многострочным полем редактирования текста. Проблема в том, что клавиша [ENTER] на виртуальной клавиатуре закрывает клавиатуру, а не создает новую строку. С помощью imeOptions можно настроить многое, но не команду новой строки ... Как я могу это сделать?

Сборка для Galaxy Tab 2 с Android 4.0.3.


person LocalHourglass    schedule 16.10.2013    source источник


Ответы (2)


Я обнаружил, что установка необработанного типа ввода EditText на многострочный работает там, где «нормальный» тип ввода - нет.

final EditText remark = new EditText(MyClass.this);    
remark.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);

Это сделало это для меня.

person LocalHourglass    schedule 23.10.2013

Возможно, вы сможете добиться этого, создав новый TextWatcher. Зарегистрируйте этот текстовый наблюдатель в своем EditText и реализуйте строку прерывания при получении ключа возврата.

РЕДАКТИРОВАТЬ:

Чтобы обработать отдельное нажатие клавиши, реализуйте onKeyDown () или onKeyUp () в зависимости от ситуации. Обычно вы должны использовать onKeyUp (), если хотите быть уверены, что получаете только одно событие. Если пользователь нажимает и удерживает кнопку, то onKeyDown () вызывается несколько раз.

Например:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode) {

         case KeyEvent.KEYCODE_ENTER:

             /* This is a sample for handling the Enter button */

             return true


        default:
            return super.onKeyUp(keyCode, event);
    }
}

Источник:

Android:

http://developer.android.com/training/keyboard-input/commands.html

Список KeyEvents:

http://developer.android.com/reference/android/view/KeyEvent.html

person RobertoNovelo    schedule 16.10.2013
comment
Насколько я могу найти, TextWatcher может отслеживать только введенный текст, а не функциональные клавиши, такие как кнопка ввода (возврата). Или я совершенно не прав? - person LocalHourglass; 17.10.2013
comment
Это действительно работает для отмены поведения клавиш клавиатуры. Хотя нашел гораздо более простое решение .. В любом случае, спасибо, мне это очень помогло. - person LocalHourglass; 23.10.2013