Настройка текста подсказки для виджета поиска при использовании в качестве части меню

У меня есть пункт меню как часть меню панели действий, и я устанавливаю класс вида действия в виджет поиска следующим образом:

   <item android:id="@+id/menu_search"
        android:title="Search"
        android:icon="@drawable/ic_menu_search"
        android:showAsAction="always"
        android:actionViewClass="android.widget.SearchView" />

Это заставит виджет поиска выскочить, когда он щелкнут, но я хочу, чтобы он всегда был видимым, и я также хочу иметь возможность установить подсказку запроса и т.д.

Когда я пытаюсь вызвать SearchView searchItem = (SearchView) menu.findItem(R.id.menu_search), чтобы получить ссылку на него, он выдает ошибку, поскольку элемент не может быть добавлен к SearchView.

Ответы

Ответ 1

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

searchView.setIconifiedByDefault(false);

Это указывает, что окно поиска всегда расширяется. Значок означает, что вам нужно нажать значок, чтобы отобразить окно поиска.

Ответ 2

Вы можете установить текст подсказки в searchview с помощью api setQueryHint (подсказка CharSequence)

SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setQueryHint("Query Hint");

Обратитесь к документации

Ответ 3

Попробуйте getActionView; findItem возвращает MenuItem, а не View использует

(SearchView)menu.findItem(R.id.menu_search).getActionView()

Ответ 4

минимальный уровень API должен быть равен 11, тогда ошибка не будет отображаться

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="18" />