更改searchView阈值

时间:2014-06-05 06:57:59

标签: android xml android-fragments searchview threshold

我有一点问题:我有一个与SuggestionAdapter一起使用的searchView。问题是searchView开始显示2个字符的结果。但是我在代码中的searchable.xml +中将阈值设置为1,但它不起作用。这里的魔法就是如果我将阈值设置为5就可以了......

Searchable.xml:

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/city_list_search"
    android:hint="@string/city_list_search"
    android:searchSuggestThreshold="1">
</searchable>

的Manifest.xml:

<activity
        android:name=".activities.HomeActivity"
        android:launchMode="singleTop"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustResize" >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <action android:name="android.intent.action.SEARCH" />

            <meta-data android:name="android.app.searchable"
                android:resource="@xml/searchable"/>

        </intent-filter>
    </activity>

我的片段,我也将阈值设置为1:

AutoCompleteTextView search_text = (AutoCompleteTextView) mSearchView.findViewById(mSearchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null));
    search_text.setThreshold(1);

    mSearchView.setIconifiedByDefault(false);
    mSearchView.setSearchableInfo(mSearchManager.getSearchableInfo(getActivity().getComponentName()));

我在哪里设置自定义适配器:(调用:public boolean onQueryTextChange(String newText))

public void updateSearchResults() {
    mSearchView.setSuggestionsAdapter(new CityListSearchResultAdapter(root.getContext(), mCursor));
}

2 个答案:

答案 0 :(得分:0)

根据文档,您必须在搜索中声明searchSuggestAutority:

android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"

http://developer.android.com/guide/topics/search/adding-custom-suggestions.html

如果您真的想使用suggestAdapter提供数据,请不要在updateSearchResults中调用setSuggestionsAdapter,但在onCreate中,只需更新光标即可。 您还可以查看https://gist.github.com/slightfoot/5514856

答案 1 :(得分:-1)

您可以在v7 Searchview中使用Appcompact活动。使用以下方法更改阈值,

AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
autoCompleteTextView.setThreshold(0);