Ayuda para pasar ArrayList y actividad plotble

Puedo ver una serie de problemas aquí:

  1. ¿Por qué usar addressPecelable? ¿Por qué no hacer que la dirección implemente Parcelable y luego usar:

     intent.putParcelableArrayListExtra( "addresses", addyExtras ); 
  2. Su objeto plotble debe incluir un CREADOR estático. Ver la documentación para más detalles.

  3. En realidad, no agrega ningún extra al bash antes de llamar a startActivity() . Ver el punto 1 para una sugerencia aquí.

Creo que tendrá que abordar todos estos problemas para que funcione.

Se puede hacer MUCHO más simple, sin todo el dolor en el culo de implementar ParcelableArrayList (pero NO cualquier List ) es Serializable . Entonces, puedes poner toda la lista usando putExtra() y recuperarla usando getSerializableExtra() , como dijo Sam.

PERO, quiero agregar una cosa más importante: el objeto que almacena su lista de arreglos también debe implementar Serializable … y todos los demás objetos complejos que el objeto puede contener (en su caso ninguno) también debe implementar eso (por lo que es recursivo) para serializar un objeto, debe poder serializar todos sus campos).

Ahora, usted se estará preguntando por qué implementar Serializable lugar de Parcelable cuando ya hay métodos para leer y escribir listas de arreglos de plots. Bueno … la diferencia es la simplicidad: simplemente agregue los implements Serializable y opcionalmente private static final long serialVersionUID = SOME_CONSTANT y ¡ya está private static final long serialVersionUID = SOME_CONSTANT ! Esa es la razón por la que nunca uso Parcelable , puedes hacer todo eso usando Serializable con literalmente 2 líneas de código, en lugar de muchas herencias de métodos y todo eso …

Puede pasar objetos serializables a través de putExtra. ArrayList implementa Serializable.

Mike dg es correcto!

putExtra() y getSerializable() almacenarán y recuperarán una ArrayList<> de sus objetos personalizados, sin necesidad de implementar ninguna interfaz. ¡Trabajó para mi!

    Intereting Posts