Привет Я работаю с текстовым редактором в своем приложении для Android. Я хочу, чтобы курсор переместился в следующую строку в edittext, когда я касался клавиши ввода в Android-клавиатуре и должен был выполнить метод, поэтому я использовал setOnKeyListener(), потому что, когда я нажал клавишу, он переходит к этому методу и выполняет myMethod(). Моя основная проблема заключается в том, когда я использовал эту (edittext.setInputType (InputType.TYPE_CLASS_TEXT);) строку кода, которая входит в метод setOnKeyListener() и хорошо выполняет myMethod, но позиция курсора по-прежнему находится в одной строке, если я удален что строка позиция курсора обновляется (перейти к следующей строке), но setOnKeyListener() не выполняется. Пожалуйста, предложите мне, как работать над этим, Мой кодКлавиатура Android Введите ключевое событие не работает
edittext = (EditText) findViewById(R.id.editText);
edittext.setInputType(InputType.TYPE_CLASS_TEXT);
edittext.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
Toast.makeText(MainActivity.this, edittext.getText(), Toast.LENGTH_SHORT).show();
myMethod();
return true;
}
return false;
}
});
Спасибо заранее.
Не работаю, если я использовать недостоверную – Sairam
Вместо 'setOnKeyListener', попытаться реализовать' setOnEditorActionListener'. И удалите эту строку 'edittext.setInputType (InputType.TYPE_CLASS_TEXT);' Надеюсь, это поможет. –
Все еще не работает, если я удалил эту строку кода, она не может перейти в setOnEditorActionListner, но курсор обновляется. Вот код edittext.setOnEditorActionListener (новый TextView.OnEditorActionListener() { @Override общественного логический onEditorAction (TextView v, внутр ActionId, KeyEvent событие) { если ((event.getAction() == KeyEvent.ACTION_DOWN) && (ActionId == KeyEvent.KEYCODE_ENTER)) { MyMethod(); возвращение ложным; }. – Sairam