Подтвердить что ты не робот

Функция выполнения 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), я бы очень хотел это понять, потому что это меня раздражало, что что-то настолько простое, как официальный учебник, не кажется работой.

Спасибо заранее.

4b9b3361

Ответ 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.