SearchView es nulo Android

Hola, estoy intentando implementar un SearchView igual que tenemos en Gmail.

@Override public boolean onCreateOptionsMenu(Menu menu) { if (!mNavigationDrawerFragment.isDrawerOpen()) { getMenuInflater().inflate(R.menu.main, menu); searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); restoreActionBar(); return true; } return super.onCreateOptionsMenu(menu); } 

El objeto searchView es nulo

Manifiesto:

  <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dgp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="21" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:icon="@drawable/logo" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="android.app.default_searchable" android:value=".GameSearchActivity" /> <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".GameInfoActivity" android:label="@string/title_activity_game_info" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> </activity> <activity android:name=".SettingsActivity" android:label="@string/title_activity_settings" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> </activity> <activity android:name=".GameSearchActivity" android:label="@string/title_activity_game_search" > <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:value="@xml/searchable" /> </activity> </application> </manifest> 

Searchable.xml

 <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_name" android:hint="@string/search_hint" /> 

Disposición del menú:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.dgp.MainActivity" > <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="collapseActionView|always" android:title="@string/action_search" android:actionViewClass="android.support.v7.widget.SearchView"/> <item android:id="@+id/action_settings" android:orderInCategory="100" android:title="@string/action_settings" app:showAsAction="never"/></menu> 

¿Puede alguien ayudar a entender por qué este objeto se nula? ¡¡¡¡Gracias!!!!

En el diseño del menú:

 <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="collapseActionView|always" android:title="@string/action_search" android:actionViewClass="android.support.v7.widget.SearchView"/> 

utilizar esta :

 <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="collapseActionView|always" android:title="@string/action_search" app:actionViewClass="android.support.v7.widget.SearchView"/> 

Así que necesitas usar la app lugar de android en la etiqueta del elemento de menú:

  app:actionViewClass="android.support.v7.widget.SearchView" 

Para admitir la vista de búsqueda, debe utilizar

App: actionViewClass = "android.support.v7.widget.SearchView" —- en el archivo xml del menú

Y tendrá que importar

Android.support.v7.widget.SearchView en el archivo java

Por favor, mire cuidadosamente la clase importada es android.support.v7.widget.SearchView. Cuando estas dos partes no son iguales, entonces la excepción de puntero nulo puede ocurrir.

tratar

 MenuItem searchItem = menu.findItem(R.id.action_search); searchView = MenuItemCompat.getActionView(searchItem); 
  • Establecer una imagen de fondo en una vista extiende mi vista
  • Android Multiple SurfaceViews
  • Diferencia entre el relleno y el margen de una vista
  • ¿Es posible comprobar si una "TAB" específica en TabWidget está visible en la vista actual o no?
  • GetLocationOnScreen () vs getLocationInWindow ()
  • ¿Hay una manera de crear el stackoverfow "Etiquetas" EditText / Campo de entrada en Android?
  • ¿Cómo hacer una devolución de llamada después de que la vista esté completamente renderizada?
  • Android: ¿Cómo obtener una vista dada una actividad dentro de una clase normal?
  • Android superponer una vista ontop de todo?
  • Android: removeMessages (int what = 107) no está soportado antes de que WebViewCore esté configurado cuando url contenga http
  • SearchView edittext siempre es nulo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.