Menu.findItem devuelve null
No puedo encontrar la solución por favor ayuda
Los implementos:
- Barra de Acción Android SearchView as Autocomplete?
- NoSuchMethodError al llamar a MenuItem.collapseActionView
- El botón de la barra de acciones no se muestra en la vista de búsqueda de Android
- Mostrar icono de micrófono en SearchView siempre
- Cómo colapsar completamente un SearchView después de un elemento seleccionado?
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); }
- Cambiar el fondo de la sugerencia de AppCompat SearchView
- Widget SearchView no aparece en la barra de acciones
- SearchView en OptionsMenu no es el ancho completo
- Excepción de puntero nulo al utilizar SearchView con AppCompat
- Ejemplo de android.support.v4.widget.SearchViewCompat?
- Implementación de SearchView en la barra de acción
- Cómo eliminar subrayado blanco en un widget de SearchView en la barra de herramientas Android
- SearchManager.getSearchableInfo (getComponentName ()) 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
- Archivo de Keystore de Android perdido
- ¿Se puede omitir OnMeasure al agregar una vista a un grupo de vistas?