кнопка поиска по обнаружению клавиатуры

#android #html #web #mobile #blazor-webassembly

Вопрос:

Я меняю программную клавиатуру Android, чтобы показывать значок поиска, а не значок ввода. Мой вопрос: как я могу обнаружить, что пользователь нажимает на эту кнопку поиска?

Ответ №1:

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

 lt;EditText  android:imeOptions="actionSearch"  android:inputType="text"/gt;  

Теперь используйте прослушиватель редактора в EditText для обработки события поиска, как показано ниже:

 editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {  @Override  public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {  if (actionId == EditorInfo.IME_ACTION_SEARCH) {  // Your piece of code on keyboard search click   return true;  }  return false;  } });  

Комментарии:

1. мой код не запускается с помощью этого метода!! это не работает для меня

2. «это не работает» никогда никому не помогало. Быть конкретным — это самое удивительное !

3. Примечание. Вам, похоже, также нужен «android:inputType=»текст»» на современном (4 ) Android.

4. Отлично! Сэкономьте много времени. Столкнулся с той же проблемой.

Ответ №2:

Вы можете использовать OnQuerySubmit прослушиватель для получения события нажатия кнопки поиска с клавиатуры.

Вот как,

 searchView.setOnQueryTextListener(queryTextListener);  SearchView.OnQueryTextListener queryTextListener  = new SearchView.OnQueryTextListener() {  @Override  public boolean onQueryTextSubmit(String s) {  showLog("searchClickListener onQueryTextSubmit");  getPhotos(searchView.getQuery().toString());  return true;  }   @Override  public boolean onQueryTextChange(String s) {  return false;  } };