tutorial studio item create bar activity actionbar android view null android-actionbar

item - create action bar android studio



getActionView() de mi MenuItem devuelve nulo (4)

Deberías usar

app:actionLayout="@layout/menu_actionbar_basket"

ese es el truco si usa

android:actionLayout="@layout/menu_actionbar_basket"

siempre obtendría una excepción nula en la barra de herramientas predeterminada.

Solo me gustaría modificar la Vista de un elemento de menú ActionBar por código.

Desafortunadamente, parece que getActionView siempre devuelve null!

Mi código:

@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = this.getSupportMenuInflater(); inflater.inflate(R.menu.folder, menu); return super.onCreateOptionsMenu(menu); } public boolean onPrepareOptionsMenu(final Menu menu) { MenuItem menuFolder = menu.findItem(R.id.menu_folder); Log.i("", "* onPrepareOptionsMenu *" + menuFolder); Log.i("", "* getActionView *" + menuFolder.getActionView());

Log es:

01-11 22: 13: 42.884: I / (7893): * onPrepareOptionsMenu *com.actionbarsherlock.internal.view.menu.MenuItemWrapper@41401ac8

01-11 22: 13: 42.884: I / (7893): * getActionView * null

Muchas gracias por cualquier ayuda

Editar:

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_folder" android:icon="@drawable/ic_menu_archive" android:showAsAction="always"/> </menu>


Para mí, la solución que funcionó es utilizar el espacio de nombres de la aplicación en lugar de Android.

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

No olvides declararlo: xmlns:app="http://schemas.android.com/apk/res-auto"


Si su compilación de depuración está funcionando sin problemas y el problema es solo con la versión de lanzamiento, esto puede deberse a la configuración proguard. Si ha habilitado Proguard en su aplicación, agregue la siguiente línea a proguard-rules.pro

-keep class android.support.v7.widget.SearchView { *; }


getActionView() solo funciona si hay una actionView personalizada de setActionView .