una pasar otra objetos entre como clase activity actividades android android-intent bundle serializable

android - objetos - ¿Cómo pasar ArrayList<CustomeObject> de una actividad a otra?



pasar objetos entre actividades android (4)

Esta pregunta ya tiene una respuesta aquí:

Deseo enviar Siguiendo ArrayList de una actividad a otra, por favor ayuda.

ContactBean m_objUserDetails = new ContactBean(); ArrayList<ContactBean> ContactLis = new ArrayList<ContactBean>();

Estoy enviando el arraylist anterior después de agregar datos en él de la siguiente manera

Intent i = new Intent(this,DisplayContact.class); i.putExtra("Contact_list", ContactLis); startActivity(i);

Pero tengo un problema al recuperarlo.

ArrayList<ContactBean> l1 = new ArrayList<ContactBean>(); Bundle wrapedReceivedList = getIntent().getExtras(); l1= wrapedReceivedList.getCharSequenceArrayList("Contact_list");

En este punto, estoy recibiendo este error:

Type mismatch: cannot convert from ArrayList<CharSequence> to ArrayList<ContactBean>

Mi clase ContactBean implementa Serializable, por favor también diga por qué tenemos que implementar una interfaz serializable.


Puede pasar una ArrayList<E> la misma manera, si el tipo E es Serializable .

putExtra (String name, Serializable value) al putExtra (String name, Serializable value) de Intent para almacenar y getSerializableExtra (String name) para su recuperación.

Ejemplo:

ArrayList<String> myList = new ArrayList<String>(); intent.putExtra("mylist", myList);

En la otra actividad:

ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist");


Utilice este código para pasar el arraylist<customobj> a la actividad anterior

en primer lugar, serializar nuestro bean de contacto

public class ContactBean implements Serializable { //do intialization here }

Ahora pase su lista de arrays

Intent intent = new Intent(this,name of activity.class); contactBean=(ConactBean)_arraylist.get(position); intent.putExtra("contactBeanObj",conactBean); _activity.startActivity(intent);


necesita implementos Parcelable en su clase ContactBean , puse un ejemplo para usted:

public class ContactClass implements Parcelable { private String id; private String photo; private String firstname; private String lastname; public ContactClass() { } private ContactClass(Parcel in) { firstname = in.readString(); lastname = in.readString(); photo = in.readString(); id = in.readString(); } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(firstname); dest.writeString(lastname); dest.writeString(photo); dest.writeString(id); } public static final Parcelable.Creator<ContactClass> CREATOR = new Parcelable.Creator<ContactClass>() { public ContactClass createFromParcel(Parcel in) { return new ContactClass(in); } public ContactClass[] newArray(int size) { return new ContactClass[size]; } }; // all get , set method }

y esto obtener y establecer para su código:

Intent intent = new Intent(this,DisplayContact.class); intent.putExtra("Contact_list", ContactLis); startActivity(intent);

segunda clase:

ArrayList<ContactClass> myList = getIntent().getParcelableExtra("Contact_list");


En la primera actividad:

ArrayList<ContactBean> fileList = new ArrayList<ContactBean>(); Intent intent = new Intent(MainActivity.this, secondActivity.class); intent.putExtra("FILES_TO_SEND", fileList); startActivity(intent);

En la actividad del receptor:

ArrayList<ContactBean> filelist = (ArrayList<ContactBean>)getIntent().getSerializableExtra("FILES_TO_SEND");`