Добавление SearchView поиска в панель инструментов
Для того чтобы добавить поиск в панель инструментов необходимо сначала создать файл ресурсов в res/menu/options_menu.xml, либо изменить существующий аналогичный файл для вашего активити.
Поместите в этот файл следующий текст:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/search_search" android:title="@string/search_title" android:icon="@drawable/ic_search" android:showAsAction="collapseActionView|ifRoom" app:actionViewClass="android.support.v7.widget.SearchView" /> </menu>
Создайте файл ресурса в res/xml/searchable.xml и вставьте следующий код:
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:hint="@string/search_text" android:label="@string/app_name"/>
В манифест привяжите к активити, который будет в панели инструментов будет отображать поиск, searchable:
<application ... > <activity ... > <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> <activity> </application>
Добавьте следующий код в ваш активити:
import android.app.SearchManager; import android.support.v7.widget.SearchView; ... @Override public boolean onCreateOptionsMenu( Menu menu ) { getMenuInflater().inflate( R.menu.options_menu, menu ); SearchManager searchManager = ( SearchManager ) getSystemService( Context.SEARCH_SERVICE ); SearchView searchView = ( SearchView ) menu.findItem( R.id.menu_search ).getActionView(); searchView.setSearchableInfo( searchManager.getSearchableInfo( getComponentName() ) ); // Задать действия searchView.setOnQueryTextListener( new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit( String s ) { // Действия после нажатия ввод return false; } @Override public boolean onQueryTextChange( String s ) { // Действия после каждого нажатия return false; } } ); return true; }