Menu.findItem devuelve null

No puedo encontrar la solución por favor ayuda

Los implementos:

public class VentasActivity extends ActionBarActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks, android.support.v7.widget.SearchView.OnQueryTextListener 

Donde devuelve null:

 @Override public boolean onCreateOptionsMenu(Menu menu) { if (!mNavigationDrawerFragment.isDrawerOpen()) { getMenuInflater().inflate(R.menu.sales, menu); restoreActionBar(); // HERE RETURNS NULL searchView = (SearchView) menu.findItem(R.id.action_product_search).getActionView(); if (searchView != null) { final Menu menu_block = menu; searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { // collapse the view ? menu_block.findItem(R.id.action_product_search).collapseActionView(); return false; } @Override public boolean onQueryTextChange(String newText) { // search goes here !! // listAdapter.getFilter().filter(query); return false; } }); Log.i("sales module", "SearchView OK"); } else Log.i("sales module", "SearchView is null"); return true; } return super.onCreateOptionsMenu(menu); } 

Y sales.xml

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_product_search" android:title="@string/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="always|collapseActionView" android:actionViewClass="android.widget.SearchView" /> 

¡Muchas muchas gracias!

ACTUALIZADO: el código de restoreActionBar ()

 public void restoreActionBar() { ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); actionBar.setDisplayShowTitleEnabled(true); actionBar.setTitle(mTitle); } 

Finalmente encontré el problema:

He cambiado la última línea en mi /res/menu/sales.xml de:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <!-- Search Widget --> <item android:id="@+id/search_view_productos" android:title="@string/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="always|collapseActionView" android:actionViewClass="android.widget.SearchView" /> </menu> 

a esto:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <!-- Search Widget --> <item android:id="@+id/search_view_productos" android:title="@string/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="always|collapseActionView" app:actionViewClass="android.widget.SearchView" /> </menu> 

El problema fue el espacio de nombres xml en actionViewClass

  • Creación de un SearchView que se parezca a las directrices de diseño del material
  • Android Searchview OnQueryTextListener con base de datos no funciona
  • Detección de un clic en el botón de la barra de acción de nuevo - (OnOptionsItemSelected no llamar cuando haga clic en el botón de la barra de acción de vuelta)
  • SearchView con múltiples fragmentos usando viewpager en android
  • ¿Cómo manejar el evento de clic de sugerencia con SearchView en ActionBar, ContentProvider llamando a webService, devolviendo el cursor?
  • No se puede obtener android.support.v7.widget.SearchView para aceptar el texto
  • No se puede ocultar el teclado virtual de SearchView iconfiedbydefault (false)
  • Buscar sugerencias de diferentes tablas en diferentes actividades
  • Android abs con SearchView, onQueryTextListener no funciona
  • Cómo diseñar un SearchView en la barra de acciones de Android
  • SearchView en ListView con un adaptador personalizado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.