Cualquier método alternativo para Casting de clase
La instrucción siguiente no se ejecuta en algunos dispositivos.
AddEvent act1 = (AddEvent) getLocalActivityManager().getCurrentActivity();
¿Hay algún método alternativo para la declaración anterior. En algunos dispositivos funciona bien, pero en otros dispositivos da excepción.
- FrameLayout a RelativeLayout ClassCastException incluso si no hay FrameLayout usado
- Java.lang.ClassCastException: android.app.ContextImpl
- Inesperado ClassCastException con findViewById
- Cómo corregir "java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext no se puede convertir en android.app.Activity" excepción
- Java.lang.ClassCastException: android.app.Application no se puede enviar a greendroid.app.GDApplication
Editar: Mi aplicación se desarrolla en la pestaña. Los resultados de OnActivity se utilizan para obtener imágenes de la actividad de la cámara. No sé dónde reside pero cuando pongo la declaración antedicha en la captura del intento entonces no se produce el cierre de la fuerza y la excepción se demuestra allí.
- Excepción de conversión de clase a la misma clase en Android
- Werid ClassCastException en TreeMap.containsKey ()
- Clase que extiende la aplicación lanza ClassNotFoundException
- Un ClassCastException acerca de la clase anónima (java)
- ClassCastException mientras carga dinámicamente una clase en Android
- Android ClassCastException al recuperar Vista personalizada
- ¿Cómo establecer el ancho y la altura para la vista personalizada en forma programática?
- Android.app.Application no se puede convertir en android.app.Activity
El problema no es realmente con el casting, sino la suposición de que el objeto devuelto por getLocalActivityManager().getCurrentActivity()
es del tipo AddEvent
. Sería difícil decir en qué escenario hace getLocalActivityManager().getCurrentActivity()
devuelve un objeto que no es del tipo AddEvent sin mirar su implementación.
El siguiente fragmento de código comprobará si el objeto devuelto es realmente de tipo AddEvent
:
if(getLocalActivityManager().getCurrentActivity() instanceof AddEvent){ AddEvent act1 = (AddEvent) getLocalActivityManager().getCurrentActivity(); }
Pero en su caso, se recomienda comprobar en qué escenario hace getLocalActivityManager().getCurrentActivity()
devuelve una instancia de fable.eventippo.Home
como contra fable.eventippo.AddEvent
.
No estoy seguro de dónde escribes esta línea, pero la salida logcat dice: Estás intentando lanzar Home
Activity en AddEvent
y es por eso que te da ClassCastException
.
FYI, getLocalActivityManager().getCurrentActivity();
Está regresando a Home
.
- Fragmento androide en el cuadro de diálogo
- Presionando el botón de inicio y acceder a la aplicación de nuevo desde la llamada del icono de la aplicación ¿Crear?