Intereting Posts
Android – включить собственные функции StageFright в мой собственный проект Удалите непрерывный спрайтовый спрайт при касании Могу ли я автоматически отключить adb, когда открывается Eclipse? Android: быстрый способ «протестировать» приложение Как удалить файл, сохраненный на SD-карте эмулятора? Как установить количество непрочитанных уведомлений в NavigationView DrawerLayout? Ошибка рейтинга содержимого консоли разработчика Как показывать баннерную рекламу с перерывами в gridview Удаление всех детских просмотров из представления Как изменить цвет фона фокусного вида Mobile Buy SDK Android – как включить кнопку «Добавить корзину» с Quanity (Nos) Разрешение отказа при попытке доступа к контактам в Android Billingservice Android – Нет подписи Неожиданное возобновление «имени пакета», хотя уже возобновлено в «имя пакета» Ошибка в Android Как получить дополнительные намерения, если активность «singleTask»?

OnActionExpandListener в menuitem не работает. Как это исправить?

Я разрабатываю приложение для Android, которое работает с уровня API 14.

У меня есть элемент в файле меню

<item android:id="@+id/menu_search" android:actionViewClass="android.widget.SearchView" android:icon="@drawable/ic_action_action_search" android:orderInCategory="3" android:showAsAction="always"/> 

Я хочу узнать о расширении и крахе этого вида поиска, я пробовал этот код, но он не работает

  @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_search, menu); MenuItem mSearchItem = menu.findItem(R.id.menu_search); mSearchItem.setOnActionExpandListener( new OnActionExpandListener() { @Override public boolean onMenuItemActionExpand(MenuItem item) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1) .show(); return true; } @Override public boolean onMenuItemActionCollapse(MenuItem item) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1) .show(); return true; } }); } } 

Почему я не получаю тосты?

Я также пробовал использовать форму кода Обработка разворачиваемых видов действий , она также не работает! Почему эти вещи не работают?

РЕДАКТИРОВАТЬ

Я могу заставить его работать, используя

 mSearchView.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { SearchView searchView = (SearchView) v; if (searchView.isIconified()) { } else{ } } }); 

Но это очень медленно!

Имел схожую проблему с решением (прокомментировал вопросчик, я просто полагаю, что он может получить больший акцент):

Add android:showAsAction="always|collapseActionView" в ваш пункт меню.

  <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" android:showAsAction="always|collapseActionView" android:actionViewClass="android.widget.SearchView" android:queryHint = "@string/search_hint"/> 
 Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1).show(); 

Рекомендуется использовать Toast.LENGTH_SHORT или Toast.LENGTH_LONG вместо вашего «1».

пример:

 Toast.makeText(MainActivity.this, "onMenuItemActionExpand", Toast.LENGTH_SHORT).show();