在 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