ClassCastException con ActionProvider personalizado

Al crear un menú con un proveedor de acción obtengo un error ClassCastException diciendo que la clase no se puede transmitir a View . He utilizado el pequeño tutorial sobre ActionProviders en el DevGuide por lo que no estoy seguro de lo que está mal.

 public class CustomActionView extends ActionProvider{ private final Context mContext; public CustomActionView(Context context) { super(context); mContext = context; } @Override public View onCreateActionView() { LayoutInflater inflater = LayoutInflater.from(mContext); View view = inflater.inflate(R.layout.action_layout,null); ImageButton button = (ImageButton)view.findViewById(R.id.imageButton1); button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent i = new Intent(mContext,com.app.notifyme.SmsPrefs.class); mContext.startActivity(i); } }); return view; } @Override public boolean onPerformDefaultAction() { Intent i = new Intent(mContext,com.app.notifyme.SmsPrefs.class); mContext.startActivity(i); return true; } } 

Menú xml

 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/prefs" android:title="Home" android:icon="@drawable/android" android:actionViewClass="com.app.notifyme.ICS.CustomActionView"/> <item android:id="@+id/add" android:title="SMS/MMS" android:icon="@drawable/android" android:actionViewClass="com.app.notifyme.ICS.ContactActionView"/> </menu> 

Logcat error:

 12-21 18:28:58.358: E/AndroidRuntime(17607): java.lang.ClassCastException: com.app.notifyme.ICS.CustomActionView cannot be cast to android.view.View 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.view.MenuInflater$MenuState.setItem(MenuInflater.java:415) 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.view.MenuInflater$MenuState.addItem(MenuInflater.java:436) 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.view.MenuInflater.parseMenu(MenuInflater.java:173) 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.view.MenuInflater.inflate(MenuInflater.java:95) 12-21 18:28:58.358: E/AndroidRuntime(17607): at com.app.notifyme.SmsMain.onCreateOptionsMenu(SmsMain.java:68) 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.app.Activity.onCreatePanelMenu(Activity.java:2444) 12-21 18:28:58.358: E/AndroidRuntime(17607): at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:388) 12-21 18:28:58.358: E/AndroidRuntime(17607): at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:739) 12-21 18:28:58.358: E/AndroidRuntime(17607): at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:2811) 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.os.Handler.handleCallback(Handler.java:605) 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.os.Handler.dispatchMessage(Handler.java:92) 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.os.Looper.loop(Looper.java:137) 12-21 18:28:58.358: E/AndroidRuntime(17607): at android.app.ActivityThread.main(ActivityThread.java:4340) 12-21 18:28:58.358: E/AndroidRuntime(17607): at java.lang.reflect.Method.invokeNative(Native Method) 12-21 18:28:58.358: E/AndroidRuntime(17607): at java.lang.reflect.Method.invoke(Method.java:511) 12-21 18:28:58.358: E/AndroidRuntime(17607): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 12-21 18:28:58.358: E/AndroidRuntime(17607): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 12-21 18:28:58.358: E/AndroidRuntime(17607): at dalvik.system.NativeStart.main(Native Method) 

Las importaciones no se pegan en el código, pero si está utilizando ActionBarSherlock (ABS) para ActionBar, tiene que importar com.actionbarsherlock.view.ActionProvider en lugar de la importación estándar android.view.ActionProvider;

  • ClassCastException: RestTemplate devuelve Lista <LinkedHashMap> en lugar de List <MymodelClass>
  • Java.lang.ClassCastException: android.os.BinderProxy no se puede convertir en LocalBinder
  • ¿Cómo establecer el ancho y la altura para la vista personalizada en forma programática?
  • Clase que extiende la aplicación lanza ClassNotFoundException
  • FrameLayout a RelativeLayout ClassCastException incluso si no hay FrameLayout usado
  • Lamentablemente, la aplicación ha dejado de funcionar.
  • Inesperado ClassCastException con findViewById
  • Android ClassCastException al recuperar Vista personalizada
  • Java.lang.ClassCastException: android.app.Application no se puede enviar a greendroid.app.GDApplication
  • Excepción de conversión de clase a la misma clase en Android
  • Obtenga todos los iconos de aplicaciones instalados en Android: java.lang.ClassCastException
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.