[android] Используйте клавишу «ENTER» на программной клавиатуре вместо кнопки



Answers

<EditText
    android:id="@+id/search"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/search_hint"
    android:inputType="text"
    android:imeOptions="actionSend" />

Затем вы можете прослушивать нажатия кнопки действия, определяя TextView.OnEditorActionListener для элемента EditText. В своем слушателе ответьте на соответствующий идентификатор действия IME, определенный в классе EditorInfo, например IME_ACTION_SEND. Например:

EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        boolean handled = false;
        if (actionId == EditorInfo.IME_ACTION_SEND) {
            sendMessage();
            handled = true;
        }
        return handled;
    }
});

Источник: https://developer.android.com/training/keyboard-input/style.html

Question

Привет, у меня есть EditText Button EditText и search. Когда я набираю искомый текст, я бы хотел использовать клавишу ENTER на программной клавиатуре вместо Button поиска, чтобы активировать функцию поиска.

Благодарим за помощь заранее.




добавьте атрибут в EditText как android: imeOptions = "actionSearch"

это лучший способ выполнить функцию

и imeOptions также имеют некоторые другие значения, такие как «идти», «следующий», «делать» и т. д.




это образец одного из моих приложений, как я обрабатываю

 //searching for the Edit Text in the view    
    final EditText myEditText =(EditText)view.findViewById(R.id.myEditText);
        myEditText.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                 if (event.getAction() == KeyEvent.ACTION_DOWN)
                      if ((keyCode == KeyEvent.KEYCODE_DPAD_CENTER) ||
                             (keyCode == KeyEvent.KEYCODE_ENTER)) {
                                //do something
                                //true because you handle the event
                                return true;
                               }
                       return false;
                       }
        });



Related