我正在使用 Android SearchManager。我在 searchable.xml 中定义了所有需要的属性。
现在,我想在用户进行搜索之前设置最小字符数限制。默认情况下,最小值为 1。
这怎么能改变?
谢谢你。
我正在使用 Android SearchManager。我在 searchable.xml 中定义了所有需要的属性。
现在,我想在用户进行搜索之前设置最小字符数限制。默认情况下,最小值为 1。
这怎么能改变?
谢谢你。
如果 onQueryTextSubmit 返回 false 则只有搜索操作正在执行,我们可以像这样限制字符
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_home, menu);
// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager)getActivity().getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
// Assumes current activity is the searchable activity
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
//searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return query.length()<4; //number of char to limit
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
}
它在 searchable.xml 中的以下属性
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
...
android:searchSuggestThreshold="2"
>
</searchable>