Слушатель SearchView onClose никогда не запускается

Получил SearchView (androidx, не поддерживает lib)

Я добавил его правильных слушателей, таких как:

@Override
    public boolean onQueryTextSubmit(String query) {
       Toaster.show(this, "onQueryTextSubmit!");
        return true;
    }

    @Override
    public boolean onQueryTextChange(String query) {
       Toaster.show(this, "onQueryTextChange!");
        return true;
    }

    @Override
    public boolean onClose() {
       Toaster.show(this, "onClose!");
       return true;
}

И onQueryTextSubmit, и onQueryTextChange работают хорошо. Однако, когда я нажимаю на маленький X справа от SearchView, представление поиска очищается, но onClose прослушиватель никогда не запускается.

В официальных документах говорится о setOnCloseListener следующее:

«Настраивает прослушиватель для информирования, когда пользователь закрывает SearchView».

Я думаю, что использую это правильно, но это не срабатывает.

Любые идеи?


person Adam Varhegyi    schedule 13.06.2019    source источник
comment
Странно, в моем проекте searchview.setOnCloseListener работает.   -  person P4yam    schedule 13.06.2019
comment
убедитесь, что вы зарегистрировали setOnCloseListener() в своем поиске, как это searchview.setOnCloseListener(this)   -  person AskNilesh    schedule 13.06.2019
comment
Я хочу, чтобы эта ссылка помогла вам больше stackoverflow.com/questions/9327826/   -  person Prachi Singh    schedule 13.06.2019


Ответы (1)


Закончилось:

   View searchViewsCloseBtn = searchView.findViewById(R.id.search_close_btn);
        searchViewsCloseBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              Toaster.show(myContext, "I hate this platform.");
            }
        });

"R.id.search_close_btn" — это фактическая ссылка на кнопку закрытия SearchView.

Если вы вручную установите onClickListener, это сработает.

person Adam Varhegyi    schedule 14.06.2019