Программная клавиатура показывает кнопку «Перейти» вместо кнопки «Поиск» при вводе текста в виджет SearchView.

Я следовал этому руководству, чтобы настроить виджет поиска на панели действий. Почти все работает нормально, за исключением того, что программная клавиатура не показывает нужную кнопку. Вместо кнопки «Поиск» на клавиатуре отображается кнопка «Перейти», и она также переводит меня к другому действию, что, я уверен, не может быть правильным.

введите здесь описание изображения

Вы знаете, как сделать так, чтобы на клавиатуре отображалась кнопка "Поиск"? также почему мы должны поместить этот код в доступные для поиска действия:

 <intent-filter>
        <action android:name="android.intent.action.SEARCH" />

Заранее спасибо.


person Axel    schedule 05.10.2014    source источник


Ответы (3)


Это довольно легко. Однако я не совсем уверен, почему по умолчанию не отображается правая кнопка:

В любом случае, вот что вам нужно сделать:

В вашей поисковой конфигурации добавьте эту строку:

android:imeOptions="actionSearch"

Чтобы у вас было что-то похожее на это:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
    android:label="@string/search_label"
    android:hint="@string/search_hint"
    android:imeOptions="actionSearch"/>

Я уверен, что это должно решить вашу проблему, но, как я уже упоминал, я не уверен, почему кнопка «Поиск» не отображается с самого начала.

person eddy    schedule 05.10.2014

Используйте этот

  searchview.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

Посмотрите этот учебник, он решит вашу вторую проблему понимания фильтра намерений Фильтры намерений

Надеюсь, это поможет вам.

person Abhishek Chaubey    schedule 05.10.2014

Попробуйте получить SearchView и вызвать следующий метод:

SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSubmitButtonEnabled(true);
person tibuurcio    schedule 05.10.2014
comment
Это показывает только кнопку отправки на панели действий, но не меняет кнопку на программной клавиатуре. - person Axel; 05.10.2014