Это не совсем ответ, но имейте в виду, что полезность фильтров типа ввода может зависеть от используемого вами IME;некоторые клавиатуры не подчиняются этим типам ввода ... Я усвоил это нелегко.: (
Имея это в виду, пытались ли вы использовать другие типы ввода, чтобы увидеть, будут ли они придерживаться? Если они все-таки придерживаются, это, вероятно, проблема IME. Если они этого не делают, это, вероятно, проблема сспособ, которым вы пытаетесь применить тип ввода.
Теперь, чтобы получить ответ:
Вы можете попробовать в onCreateOptionsMenu выполнить поиск по идентификатору этого меню.элемент, приведение к SearchView и установка типа ввода в коде:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.default_menu, menu);
if (MyApplication.SUPPORTS_HONEYCOMB) { // quick check for API level
// If we have the honeycomb API, set up the search view
MenuItem searchItem = menu.findItem(R.id.search);
SearchView search = (SearchView) searchItem.getActionView();
// your code here. something like:
search.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL);
// you also likely want to set up your search listener here.
}
// I'm using ActionBarCompat, in which case
// calling super after populating the menu is necessary here to ensure that the
// action bar helpers have a chance to handle this event.
return super.onCreateOptionsMenu(menu);
}