Настройка текста подсказки для виджета поиска при использовании в качестве части меню
У меня есть пункт меню как часть меню панели действий, и я устанавливаю класс вида действия в виджет поиска следующим образом:
<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" />