У меня есть EditText, который используется для ввода содержимого сообщений (электронной почты, смс). Я хочу, чтобы сообщение было немедленно отправлено на кнопку ActionDone. Для этого я использую следующий код:
message.setOnEditorActionListener((textView, i, keyEvent) -> {
switch (i) {
case EditorInfo.IME_ACTION_DONE:
if (messageCanBePosted()) {
SoftKeyboard.hide(message);
postMessage();
return true;
} else {
return false;
}
default:
return false;
}
});
Но также я хочу, чтобы это поле сообщения было многострочным, как в любых других приложениях для обмена сообщениями. Я могу добиться этого с помощью этой строки:
android:inputType="textMultiLine"
Проблема в том, что после добавления этой строки кнопка ActionDone начинает действовать, как кнопка Enter. Поэтому мой callback для EditorInfo.IME_ACTION_DONE
никогда не вызывается. Поэтому каждый раз, когда пользователь нажимает эту кнопку, курсор перемещается в новую строку вместо отправки сообщения.
Как сохранить как многострочное поведение EditText (возможность отображения текста на нескольких строках), так и кнопку ActionDone?