Показать сообщение об ошибке в SearchView

Я использую SearchView в ActionBar, и я хотел бы знать, возможно ли показать ошибку, если ввод недействителен, подобно методу EditText showError().

Я знаю, что это может быть анти-шаблон, потому что любой поиск не должен быть недействительным. Я настроил SearchView так, чтобы он реагировал таким образом, что если он обнаружит, что пользователь что-то поместил и что что-то похоже на что-то действительное, он сообщит об этом пользователю. Но для этой цели я хотел бы получить тот же эффект, что и метод showError() EditText, как я уже говорил.

Возможно ли это, или мне придется показать Toast или что-то подобное?


person Joaquin Iurchuk    schedule 15.07.2015    source источник


Ответы (1)


Попробуй это.

int id = searchView.getContext()
                        .getResources()
                        .getIdentifier("android:id/search_src_text", null, null);
EditText editText = (EditText) searchView.findViewById(id);
editText.setError("Your error message");
person amzer    schedule 02.06.2017
comment
Спасибо! Я попробую это! - person Joaquin Iurchuk; 02.06.2017
comment
если вы используете appcompat SearchView, используйте SearchView.findViewById(androidx.appcompat.R.id.search_src_text), который возвращает SearchView.SearchAutoComplete, который является EditText, поэтому вы можете вызывать setError на SearchView.SearchAutoComplete->setError("there was an error") Хотя на моем телефоне ошибка не отображается полностью - person Dr Deo; 19.07.2019