Android SearchManager: Как установить минимальное количество символов для включения поиска
Я использую Android SearchManager. Я определил все необходимые атрибуты в searchable.xml.
Теперь я хотел бы установить ограничение на минимальное количество символов, прежде чем пользователь сможет выполнить поиск. По умолчанию минимум равен 1.
Как это можно изменить?
Спасибо.
2 ответа
Решение
Это следующий атрибут в searchable.xml
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
...
android:searchSuggestThreshold="2"
>
</searchable>
Если 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;
}
});
}