Android: проблема с использованием кнопки ввода с клавиатуры, произнесите «Поиск» и обработайте ее нажатие?

Я хочу добавить кнопку поиска на ввод с клавиатуры, а EditText и поиск я действовал следующим образом, и у меня есть следующие ошибки

recherche=(EditText)findViewById(R.id.recherche);

recherche.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {

                    new DownloadTask().execute();                   
                    return true;
                }
                return false;
            }
        });

ОШИБКА: тип new TextView.OnEditorActionListener(){} должен реализовывать унаследованный абстрактный метод TextView.OnEditorActionListener.onEditorAction(TextView, int, KeyEvent)

ОШИБКА: KeyEvent не может быть преобразован в тип


person Predator    schedule 06.08.2013    source источник


Ответы (1)


Вот пример моего кода:

TextView.OnEditorActionListener enterListener = new TextView.OnEditorActionListener() {
   @Override
   public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
       if ((keyEvent != null && (keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (i == EditorInfo.IME_ACTION_DONE)) {
            InputMethodManager inputManager = (InputMethodManager)
                    getSystemService(Context.INPUT_METHOD_SERVICE);
                    inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
                   InputMethodManager.HIDE_NOT_ALWAYS);
            bQServer.performClick();
        }
        return false;
    }
};

//etUserName.setOnEditorActionListener(enterListener);
etPassword.setOnEditorActionListener(enterListener);

Вы должны иметь возможность просто изменить KeyEvent.KEYCODE_ENTER на KeyEvent.KEYCODE_SEARCH

i.e

TextView.OnEditorActionListener enterListener = new TextView.OnEditorActionListener() {
       @Override
       public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
           if ((keyEvent != null && (keyEvent.getKeyCode() == KeyEvent.KEYCODE_SEARCH)) {
               new DownloadTask().execute();
               return true; 
            }
            return false;
        }
    };

recherche.setOnEditorActionListener(enterListener);

--Редактировать--

Убедитесь, что вы импортировали KeyEvent и onEditorActionListener.

import android.view.KeyEvent;
import android.widget.TextView.OnEditorActionListener;
person rcbevans    schedule 06.08.2013
comment
может быть глупый вопрос, но вы импортировали KeyEvent? импортировать android.view.KeyEvent; - person rcbevans; 06.08.2013
comment
Он не ответит вам, потому что вы комментируете свой ответ, а не его вопрос :) - person Sami Eltamawy; 18.03.2015