закрыть прослушиватель searchview в макете не работает Android
Я создаю приложение для android, в которое я встроил searchview ниже панели инструментов. Смотрите Скриншот. Но когда я нажимаю на значок поиска, моя клавиатура появляется, но когда я нажимаю закрыть значок searchview, клавиатура не исчезает. Закрыть слушателя не работает, и действие развернуть или свернуть слушателя не может быть использовано, потому что это не menuitem. Так как же должна исчезнуть клавиатура. Пожалуйста, проводник.
simpleSearchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
hideKeyboard(getActivity());
return false;
}
});
1 ответ:
Это можно сделать, получив ссылку на кнопку [x], а затем установив на ней прослушиватель onClick. В onClickListener можно добавить логику, чтобы скрыть клавиатуру.
Приведенный ниже код был получен из этого ответа
// Catch event on [x] button inside search view int searchCloseButtonId = searchView.getContext().getResources() .getIdentifier("android:id/search_close_btn", null, null); ImageView closeButton = (ImageView) this.searchView.findViewById(searchCloseButtonId); // Set on click listener closeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Manage this event. } });
Внутри
onClick(View v)
Вы можете вызвать метод, чтобы скрыть клавиатуру, как этоprivate void hideKeyboard(){ View view = this.getCurrentFocus(); if (view != null) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); }