I have onQueryTextChange
listener on my SearchView.
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String searchString) {
return true;
}
@Override
public boolean onQueryTextChange(String s) {
if (s.length() > 5) {
searchView.setQuery(s.substring(0, 5), false);
}
return false;
}
});
My goal is to limit number of characters to 5. The problem is that,
SearchView
Thanks for help
Instead of limiting in listener, I solved it getting EditText
in SearchView
.
I was using this method to get EditText
but it was returning null,
searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
EditText etSearchView = (EditText) searchView.findViewById(id);
etSearchView.setFilters(new InputFilter[] {new InputFilter.LengthFilter(5)});
Instead of getting id
of EditText
I just passed it's actual id and it worked,
searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
EditText etSearchView = (EditText) searchView.findViewById(R.id.search_src_txt);
etSearchView.setFilters(new InputFilter[] {new InputFilter.LengthFilter(5)});