如何设置适配器动作条来搜索查看 [英] How to set adapter to searchview in actionbar

查看:156
本文介绍了如何设置适配器动作条来搜索查看的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

设置自定义值来搜索查看适配器....

像我们一样在自动完成,并通过阵列串

感谢名单提前

 私人无效setupSearchView(菜单项searchItem){    如果(isAlwaysExpanded()){
        mSearchView.setIconifiedByDefault(假);
    }其他{
        sea​​rchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM
                | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
    }    SearchManager的SearchManager的=(SearchManager的)getSystemService(Context.SEARCH_SERVICE);
    如果(SearchManager的!= NULL){
        清单< SearchableInfo>可搜寻= SearchManager的
                .getSearchablesInGlobalSearch();        SearchableInfo信息= SearchManager的
                .getSearchableInfo(getComponentName());
        对于(SearchableInfo INF:可搜寻){
            如果(inf.getSuggestAuthority()!=空
                    &功放;&安培; inf.getSuggestAuthority()。startsWith(应用程序)){
                信息= INF;
            }
        }
        mSearchView.setSearchableInfo(信息);    }    mSearchView.setOnQueryTextListener(本);
}


解决方案

搜索查看需要的CursorAdapter

不幸的是,这意味着你不能只是提供一个 ArrayAdapter 与项目的数组。如果你真的想用的String [] 作为搜索的数据源​​,我想你可以把它包装成的 MatrixCursor

一个例子可以在这里找到:

Setting custom values to searchview adapter ....

like we do in autocomplete and passing array string

Thanx in advance

private void setupSearchView(MenuItem searchItem) {

    if (isAlwaysExpanded()) {
        mSearchView.setIconifiedByDefault(false);
    } else {
        searchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM
                | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
    }

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    if (searchManager != null) {
        List<SearchableInfo> searchables = searchManager
                .getSearchablesInGlobalSearch();

        SearchableInfo info = searchManager
                .getSearchableInfo(getComponentName());
        for (SearchableInfo inf : searchables) {
            if (inf.getSuggestAuthority() != null
                    && inf.getSuggestAuthority().startsWith("applications")) {
                info = inf;
            }
        }
        mSearchView.setSearchableInfo(info);

    }

    mSearchView.setOnQueryTextListener(this);
}

解决方案

SearchView takes a CursorAdapter only:

Unfortunately that means you can't just supply an ArrayAdapter with an array of items. If you really wanted to use a String[] as searchable data source, I suppose you could wrap it into a MatrixCursor.

An example is can be found here:

这篇关于如何设置适配器动作条来搜索查看的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆