Вам необходимо установить OnEditorActionListener
для вашего EditText
:
val input = EditText(this@MainActivity)
input.setOnEditorActionListener { _, actionId, event ->
// If triggered by an enter key, this is the event; otherwise, this is null.
// if shift key is down, then we want to insert the '\n' char in the TextView;
if (event == null || event.isShiftPressed) return@setOnEditorActionListener false
// TODO: your code goes here
return@setOnEditorActionListener true
}
В этом примере я дополнительно проверяю, что смена не нажата. Он будет работать на всех устройствах с любой клавиатурой.
Примечание 1 . Нам не нужен actionId
здесь, но вы все равно можете установить различные действия для клавиатуры (с input.imeOptions = EditorInfo.IME_ACTION_SEND
или с атрибутом xml android:imeOptions="actionSend"
), и слушатель будет вызван для любого действия на клавиатуре любого типа. Прочитайте документацию Android , чтобы узнать больше о действиях.
Примечание 2 . Я сделал специальную оболочку для всей этой логики, которая позволяет мне установить слушатель ввода ключа наиболее простым способом. Проверьте этот смысл .
editText.setOnEnterActionListener {
Toast.makeText(context, "Click", Toast.LENGTH_SHORT).show()
}