Мое приложение содержит стандартный виджет SearchView. Как видно из приведенного ниже кода, я устанавливаю OnClickListener, OnCloseListener и OnQueryTextListener.SearchView не отвечает на клики после запроса submit
Если я коснусь SearchView, он изначально отвечает как ожидалось. Если я нахожу текст и нажимаю кнопку поиска на клавиатуре, OnQueryTextListener срабатывает правильно, а клавиатура отклоняется в соответствии с searchView.setIconified (true). Однако, если я снова коснусь SearchView, OnClickListener не будет запущен. Клавиатура все еще появляется, и поле становится редактируемым, но мой код в OnClickListener не выполняется.
Если я использую значок «X», чтобы закрыть окно поиска после этого, все возвращается в нормальное состояние. В следующий раз, когда я нажимаю на SearchView, мой слушатель уволен.
У меня есть дополнительный код, который мне нужно будет выполнять каждый раз, когда нажимается SearchView.
Что может вызвать у слушателя не срабатывание в этом конкретном случае? Есть ли что-то еще, что я должен делать в OnQueryTextSubmit?
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
filterLayout.setVisibility(View.VISIBLE);
searchView.setIconified(false);
System.out.println("on click");
}
});
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
filterLayout.setVisibility(View.INVISIBLE);
return false;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchView.setIconified(true);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});