【发布时间】:2015-03-11 13:15:59
【问题描述】:
我想知道我们如何在操作栏上的搜索视图小部件下方实现/创建一个列表视图。最后在输入字符串时过滤列表,就像 Google Play 商店中的那样。
【问题讨论】:
标签: android filtering searchview
我想知道我们如何在操作栏上的搜索视图小部件下方实现/创建一个列表视图。最后在输入字符串时过滤列表,就像 Google Play 商店中的那样。
【问题讨论】:
标签: android filtering searchview
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);
将此代码放在活动中的 oncreateOptionMenu 中
它只能使用 arrayadapter 工作
【讨论】:
当您configure a SearchView 时,您调用setSearchableInfo()。根据Adding Custom Suggestions 培训,这涉及添加一行,例如
android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"
到您的searchable.xml。然后你必须实现一个可以处理传入搜索查询的ContentProvider。
【讨论】:
OnQueryTextListener 绑定到 SearchView 的建议下拉列表的方法,请务必写下答案。但是,您会发现内置 SearchView 没有一种机制来提供基于正确创建的 ContentProvider 的结果之外的任何内容的下拉建议。