在动作栏的searchView上实时搜索

时间:2015-03-10 22:21:06

标签: android filtering searchview

我想知道如何实现/创建列表在操作栏上的搜索视图小部件下方查看。最后在输入字符串时过滤列表,就像在Google Play商店中输入字符串一样。

2 个答案:

答案 0 :(得分:1)

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);

将此代码放在活动中的oncreateOptionsMenu

它只能使用arrayadapter

答案 1 :(得分:0)

当您configure a SearchView时,请致电setSearchableInfo()。根据{{​​3}}培训,这涉及添加诸如

之类的行
android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"

searchable.xml。然后,您必须实现可以处理传入搜索查询的Adding Custom Suggestions