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); } 

One Solution collect form web for “Menu.findItem devuelve null”

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

  • ¿Hay algún oyente en Android SearchView para notificar si SearchView está expandido y listo para tomar entrada?
  • No se puede generar SearchView en Fragmento (AppCompat)
  • Icono de Android SearchView
  • SearchView en ListView con un adaptador personalizado
  • Gire AutoCompleteTextView en un SearchView en ActionBar en su lugar
  • Cómo descartar / cerrar / contraer SearchView en ActionBar en MainActivity?
  • Widget SearchView no aparece en la barra de acciones
  • Android SearchView Ocultar el teclado al iniciar
  • NoSuchMethodError al llamar a MenuItem.collapseActionView
  • Android - vista de búsqueda con función completa automática dentro de la barra de acción
  • Android Support Library ActionBar no funciona en el dispositivo 2.3
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.