Функция выполнения Android после нажатия "Enter" для EditText
Я слежу за официальными обучающими программами Android, и у меня возникла проблема с этот очень простой пример для выполнения функции после нажатия "Enter" для EditText.
Я понимаю, что я должен делать, и, похоже, все правильно настроено, но Eclipse жалуется на эту строку:
edittext.setOnKeyListener(new OnKeyListener() {
Он подчеркивает setOnKeyListener
с ошибкой:
Метод setOnKeyListener (View.OnKeyListener) в типе View не применим для аргументов (новый DialogInterface.OnKeyListener() {})
И также подчеркивает OnKeyListener
с ошибкой:
Тип new DialogInterface.OnKeyListener() {} должен реализовать наследуемый абстрактный метод DialogInterface.OnKeyListener.onKey(DialogInterface, int, KeyEvent)
Возможно, кто-то может стрелять в меня в правильном направлении? Прежде чем я попробую другие решения (которые я уже нашел в stackoverflow), я бы очень хотел это понять, потому что это меня раздражало, что что-то настолько простое, как официальный учебник, не кажется работой.
Спасибо заранее.
Ответы
Ответ 1
Из того, что я вижу, похоже, что у вас неправильный импорт.
Попробуйте
edittext.setOnKeyListener(new View.OnKeyListener() {
ИЛИ добавьте этот импорт
import android.view.View.OnKeyListener;
и удалите этот
import android.content.DialogInterface.OnKeyListener;
Ответ 2
Чтобы получить событие клавиатуры, нажмите необходимо. Чтобы заставить это использовать:
edittext.setFocusableInTouchMode(true);
edittext.requestFocus();
После этого продолжите с тем же кодом в примере:
edittext.setOnKeyListener(new View.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)) {
// Perform action on key press
Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
Ответ 3
Удалить оператор импорта с DialogInterface
, а затем импортировать View.OnKeyListener
.