2016-01-07 3 views
0

У меня есть android.support.v7.widget.SearchView, живущий на моей панели инструментов AppCompat.Кнопка «Назад» не сбрасывается SearchView

Я нажимаю кнопку «Поиск», чтобы развернуть ActionView MenuItem, и все нормально, пока я не ударил аппаратную кнопку «Назад» устройства. Это скрывает клавиатуру, и EditText SearchView теряет фокус, и его курсор исчезает, но элемент не сбрасывается обратно на значок поиска. Вместо этого элемент меню справа от значка поиска фокусируется/подсвечивается, что ... неправильно. Повторное нажатие не делает этого.

Я попытался обнаружить обратный ключ различными способами, например, добавить OnKeyListener в SearchView или его EditText, но он не запускается. Нажатие кнопки «Вверх» на панели действий делает именно то, что мне нужно, поэтому мне просто нужно обнаружить кнопку «Назад».

Единственное, что странно в моей настройке, - это то, что SearchView сам не находится в макете. Если я его добавлю, он будет успешно сгенерирован, но сбой в Runtime. По какой-то причине.

У меня есть слушатель для разворота/сглаживания, сбой обнаруживается только при нажатии кнопки «Вверх», при нажатии кнопки «Назад» он не запускается.

Благодаря

Вот восседает мой код вверх SearchView:

MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); 
final SearchView searchView = new MyobSearchView(activity); 
MenuItemCompat.setActionView(menuItem, searchView); 
MenuItemCompat.setOnActionExpandListener(menuItem, new FocusSearchFieldActionExpandListener(searchView, androidUtils)); 

ответ

1

Вы можете сделать это с помощью переопределения метода(), как это в onBackPressed:

@Override 
public void onBackPressed() { 
     // do what you want 
} 
+0

В своей деятельности предположительно? –

+0

Да. В деятельности. –

+2

Функция OnBackPressed не вызывается при расширении SearchView. Поэтому я не верю, что это ответ –

Смежные вопросы