getParcelable devuelve null incluso si el objeto pasado no es null
Quiero pasar un objeto parcelable a una actividad a otra. Así que implementé una clase parcelable para lograr esto. Y codifiqué:
Intent intent = new Intent(mainactivity.this, SecondActivity.class); Object[] object = new Object(); intent.putExtra("Object ", object); startActivity(intent);
y en la segunda actividad que codifiqué:
- Ampliación de una clase que implementa Parcelable
- Paquete interior parcelable que se agrega a la parcela
- No se puede guardar ArrayList de Uri en un archivo: NotSerializableException
- ¿Recuperar un objeto parcelable a través de un paquete siempre crea una nueva copia?
- Android: guarda datos parcelables en un archivo
Object[] object = (Object[]) getIntent().getExtras().getParcelable("object");
Cuando paso el objeto a Intent, no es nulo. Mientras que, cuando lo consigo en la segunda actividad es nulo. ¿Tienes alguna sugerencia? ¡Gracias por adelantado!
- ClassNotFoundException cuando unmarshalling y realmente no sé por qué
- No entiendo por qué se produce esta ClassCastException
- Lista de objeto personalizado y Parcelable dar NullPointerException
- Agregando parcelable a una clase de interfaz para objetos personalizados
- Clase no encontrada cuando Unmarshalling Android Intent Parcelable
- Implementación de clase parcelable que requiere contexto
- Envío de la lista de objetos del array entre actividades con Parcelable
- Errores de unmarshalling en la aplicación de Android con clases parcelables personalizadas
Cambia esto:
Object object = (Object) getIntent().getExtras().getParcelable("object");
A esto:
Object object = getIntent().getExtras().get("Object");
getParcelable
sólo debe utilizarse si está utilizando putParcelable
o insertando un objeto putExtra
utilizando putExtra
en la parte de envío del código.
PS también la mente de la diferencia de nombre-clave Objeto y objeto
Usted puede simplemente usar en la persona que llama:
Intent i = new Intent(EditActivity.this, ViewActivity.class); i.putExtra("myObj", p); startActivity(i);
En el receptor:
Bundle b = i.getExtras(); Person p = (Person) b.getParcelable("myObject");
Espero que esto te ayude