XML
I - Создайте для поиска конфигурации в searchable.xml
сохраненный в каталоге Рез/XML.
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_label"
android:hint="@string/search_hint" >
</searchable>
II - Объявите вашу поисковую активность в файле AndroidManifest.xml
.
<activity android:name=".SearchActivity">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
III- Объявить свой SearchView внутри любого layout.xml
<android.support.v7.widget.SearchView
android:id="@+id/search"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
STYLING
I. Declare пользовательские стили в файле styles.xml
.
<style name="SearchViewTheme" >
<item name="colorControlActivated">@color/amber500</item>
<item name="colorControlNormal">@color/green500</item>
</style>
II. Примените этот стиль
<android.support.v7.widget.SearchView
android:id="@+id/search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:searchIcon="@drawable/ic_library"
app:theme="@style/SearchViewTheme"/>
JAVA
I- Настройку SearchView в OnCreate
методе
SearchView searchView = (SearchView) findViewById(R.id.search);
// Sets searchable configuration defined in searchable.xml for this SearchView
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
II- Получение поискового запроса
SearchView searchView = (SearchView) findViewById(R.id.search);
// Sets searchable configuration defined in searchable.xml for this SearchView
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
III- Прослушивание пользовательские входы (ge tting)
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchFor(query);
return true;
}
@Override
public boolean onQueryTextChange(String query) {
filterSearchFor(query);
return true;
}
});
Переполнение стека для вопросов, написанных на английском языке. http://forum.frandroid.com/forum/7-d%C3%A9veloppement/ предлагает поддержку на французском языке. (Google Translate: Stack Overflow est pour les questions écrites en anglais. Http://forum.frandroid.com/forum/7-d%C3%A9veloppement/ offre un support en français.) – CommonsWare
Я понял ваше замечание. – ladougol