Android выполняет функцию после нажатия "Enter" для EditText
Я следовал официальным учебникам по Android и у меня возникли проблемы с этим очень простым примером выполнения функции после нажатия "Enter" для EditText.
Я понимаю, что должен делать, и, похоже, все настроено правильно, но Eclipse жалуется на эту строку:
edittext.setOnKeyListener(new OnKeyListener() {
Подчеркивает setOnKeyListener
с ошибкой:
Метод setOnKeyListener(View.OnKeyListener) в типе View не применим для аргументов (new DialogInterface.OnKeyListener(){})
А также подчеркивает OnKeyListener
с ошибкой:
Тип new DialogInterface.OnKeyListener () {} должен реализовывать унаследованный абстрактный метод DialogInterface.OnKeyListener.onKey(DialogInterface, int, KeyEvent)
Возможно, кто-то может выстрелить в меня в правильном направлении? Прежде чем я попробую другие решения (которые я уже нашел в stackru), я действительно хотел бы выяснить это, потому что меня взволновало то, что что-то такое простое, как официальное руководство, не похоже на работу.
Заранее спасибо.
3 ответа
Из того, что я вижу, похоже, что вы неправильно импортировали.
Пытаться
edittext.setOnKeyListener(new View.OnKeyListener() {
ИЛИ добавить этот импорт
import android.view.View.OnKeyListener;
и удалить этот
import android.content.DialogInterface.OnKeyListener;
Чтобы получить событие клавиатуры, представление должно иметь фокус. Чтобы заставить это использовать:
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;
}
});
Удалить оператор импорта, который имеет DialogInterface
затем импортируйте View.OnKeyListener
,