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

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

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

Вы делаете это, установив OnKeyListener в свой EditText .

Вот пример из моего собственного кода. У меня есть EditText именем addCourseText , который вызовет функцию addCourseFromTextBox когда будет нажата клавиша ввода или d-pad.

 addCourseText = (EditText) findViewById(R.id.clEtAddCourse); addCourseText.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: addCourseFromTextBox(); return true; default: break; } } return false; } }); 
  

Затем вы можете прослушивать нажатия кнопки действия, определяя TextView.OnEditorActionListener для элемента EditText. В своем слушателе ответьте на соответствующий идентификатор действия IME, определенный в classе 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

Возможно, вы могли бы добавить атрибут в свой EditText следующим образом:

 android:imeOptions="actionSearch" 

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

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

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

Чтобы избежать фокусировки на следующем редактируемом поле (если оно у вас есть), вам может потребоваться игнорировать события блокировки клавиатуры, но обрабатывать события с клавиатурой. Я также предпочитаю сначала фильтровать ключевой код, предполагая, что он будет немного более эффективным. Кстати, помните, что возrotation true означает, что вы обработали событие, так что никакой другой слушатель не будет. Во всяком случае, вот моя версия.

 ETFind.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) { if (event.getAction() == KeyEvent.ACTION_DOWN) { // do nothing yet } else if (event.getAction() == KeyEvent.ACTION_UP) { findForward(); } // is there any other option here?... // Regardless of what we did above, // we do not want to propagate the Enter key up // since it was our task to handle it. return true; } else { // it is not an Enter key - let others handle the event return false; } } }); 

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

  //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; } }); 
  • Как я могу программно проверить, присутствует ли клавиатура в приложении iOS?
  • Как определить текущую нажатую клавишу?
  • Получить UITableView для перехода к выбранному UITextField и избегать скрытия клавиатуры
  • Как получить ввод с клавиатуры в pygame?
  • OSX: Обнаруживать общесистемные события KeyDown?
  • Моделирование событий нажатия клавиш в Mac OS X
  • UISearchbar clearButton заставляет клавиатуру появляться
  • Java KeyListener заикается
  • Как отличить несколько клавиатур в Delphi?
  • Как обрабатывать одновременные нажатия клавиш в Java?
  • Нажмите клавиши клавиатуры с помощью командного файла
  • Interesting Posts

    Поведение printf при печати% d без указания имени переменной

    Понимание размеров строк Postgres

    Windows 7 – компьютер перезапускается каждые 1 час и говорит: «Устройство загрузки не найдено»

    Как я могу достоверно сказать, если stream boost вышел из своего метода запуска?

    ExpandableListView – скрыть индикатор для групп без детей

    Как обмениваться Интернетом (по беспроводной сети) через сеть LAN в Windows 7?

    Math.Pow не вычисляется правильно

    разыменование нулевой указатель

    Восстановление потерянного раздела NTFS с поврежденным загрузочным сектором

    Как настроить привязку ширины столбца ColumnDefinition или RowDefinition?

    Как я могу вернуть пользовательский код состояния HTTP из метода WCF REST?

    Объявление 64-битных переменных в C

    Сохранение параметров строки запроса запроса GET в форме JSF

    Как установить английский (Великобритания) в качестве языка редактирования по умолчанию в Word 2007?

    Эффективный способ поиска кодировки любого файла

    Давайте будем гением компьютера.