Android выполняет действие при вводе нажмите в редактировать текст

Я пытаюсь выполнить действие, поиск, после того, как пользователь нажимает ввод при вводе текста редактирования. Это не работает. Коды:

edtSearch.setOnKeyListener(new OnKeyListener(){
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_ENTER){
                    System.out.println("test");
                    return true;
                }
                return false;
            }}); 

XML для edittext,

<EditText
            android:id="@+id/edtSearch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >
            <requestFocus />
        </EditText>

Любая идея, почему это не работает.

1 ответ

Вы должны установить тип ввода и параметры IME, например, так:

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="number"
    android:imeOptions="actionDone">`

и внутри вашей деятельности установите OnEditorActionListener в EditText:

edit.setOnEditorActionListener(new OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if(actionId==EditorInfo.IME_ACTION_DONE){
                    Log.i(TAG,v.getText().toString());
                }
                return false;
            }
        });
Другие вопросы по тегам