在 actionbar 的 searchView 上实时搜索
live searching on the actionbar's searchView
我想知道我们如何在操作栏上的搜索视图小部件下方实现/创建列表视图。最后在输入字符串时过滤列表,就像 Google Play 商店中的字符串一样。
当您 configure a SearchView
, you call setSearchableInfo()
. Per the Adding Custom Suggestions 训练时,这涉及添加一行
android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"
给你的searchable.xml
。然后,您必须实现一个可以处理传入搜索查询的 ContentProvider。
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(true);
SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextChange(String cs)
{
YourActivity.this.adapter.getFilter().filter(cs);
YourActivity.this.adapter.setTextToFilter(cs);
return false;
}
@Override
public boolean onQueryTextSubmit(String query)
{
YourActivity.this.adapter.getFilter().filter(query);
YourActivity.this.adapter.setTextToFilter(query);
return false;
}
};
searchView.setOnQueryTextListener(textChangeListener);
将此代码放在 activity
的 oncreateOptionMenu 中
它仅适用于 arrayadapter
我想知道我们如何在操作栏上的搜索视图小部件下方实现/创建列表视图。最后在输入字符串时过滤列表,就像 Google Play 商店中的字符串一样。
当您 configure a SearchView
, you call setSearchableInfo()
. Per the Adding Custom Suggestions 训练时,这涉及添加一行
android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"
给你的searchable.xml
。然后,您必须实现一个可以处理传入搜索查询的 ContentProvider。
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(true);
SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextChange(String cs)
{
YourActivity.this.adapter.getFilter().filter(cs);
YourActivity.this.adapter.setTextToFilter(cs);
return false;
}
@Override
public boolean onQueryTextSubmit(String query)
{
YourActivity.this.adapter.getFilter().filter(query);
YourActivity.this.adapter.setTextToFilter(query);
return false;
}
};
searchView.setOnQueryTextListener(textChangeListener);
将此代码放在 activity
的 oncreateOptionMenu 中它仅适用于 arrayadapter