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
- ¿Por qué las vistas pierden el relleno cuando se establece un backgroundResource de xml?
- onTouchListener anula un fondo personalizado en la vista de botón?
- Android SlidingPaneLayout se desvanece en las vistas incorrectas
- Cómo girar una vista en Android
- Error al hacer referencia a una clase interna Ver en layout / main.xml
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!!!!
- Actualizar el menú NavigationView después de cambiar la configuración regional
- Android DataBinding dónde obtener el contexto?
- Error al inflarse al extender una clase
- Vista transparente sobre ImageView
- View.onMeasure () no se llama
- En qué condiciones se llama a getChildView () en ExpandableListAdapter
- No se puede resolver el símbolo 'NavigationView'
- ¿Corrección de Android EditText para el texto?
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);
- Cómo reproducir un video con la API de YouTube mediante YouTubePlayerFragment?
- Abrir el archivo pdf desde el servidor con la intención de Android