Pasar una lista de una actividad a otra

¿Cómo pasar colecciones como ArrayList , etc. de una Activity a otra ya que solíamos pasar Strings , int con la ayuda del método PutExtra de intención?

¿Alguien puede por favor ayudarme porque quiero pasar una List de una Activity a otra?

Puede pasar una ArrayList 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 myList = new ArrayList(); intent.putExtra("mylist", myList); 

En la otra actividad:

 ArrayList myList = (ArrayList) getIntent().getSerializableExtra("mylist"); 

Tenga en cuenta que la serialización puede causar problemas de rendimiento: lleva tiempo, y se asignarán muchos objetos (y, por lo tanto, tienen que ser basura).

Primero necesita crear una clase de objeto Parcelable, vea el ejemplo

 public class Student implements Parcelable { int id; String name; public Student(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public String getName() { return name; } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int arg1) { // TODO Auto-generated method stub dest.writeInt(id); dest.writeString(name); } public Student(Parcel in) { id = in.readInt(); name = in.readString(); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public Student createFromParcel(Parcel in) { return new Student(in); } public Student[] newArray(int size) { return new Student[size]; } }; } 

Y la lista

 ArrayList arraylist = new ArrayList(); 

Código de actividad de llamadas

 Intent intent = new Intent(this, SecondActivity.class); Bundle bundle = new Bundle(); bundle.putParcelableArrayList("mylist", arraylist); intent.putExtras(bundle); this.startActivity(intent); 

Código de actividad llamada

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Bundle bundle = getIntent().getExtras(); ArrayList arraylist = bundle.getParcelableArrayList("mylist"); } 

use putExtra para pasar el valor a un bash. use el método getSerializableExtra para recuperar los datos como este

Actividad A:

 ArrayList list = new ArrayList(); intent.putExtra("arraylist", list); startActivity(intent); 

Actividad B:

 ArrayList list = getIntent().getSerializableExtra("arraylist"); 

Probé todas las técnicas propuestas, pero ninguna de ellas funcionó e impidió que mi aplicación funcionara y finalmente conseguí el éxito. Así es como lo hice … En la actividad principal, hice esto:

  List myList...; Intent intent = new Intent...; Bundle b=new Bundle(); b.putStringArrayList("KEY",(ArrayList)myList); intent_deviceList.putExtras(b); ....startActivity(intent); 

Para obtener los datos en la nueva actividad:

  List myList... Bundle b = getIntent().getExtras(); if (b != null) { myList = bundle.getStringArrayList("KEY"); } 

Espero que esto ayude a alguien…

Para pasar ArrayList de una actividad a otra, se debe incluir

 intent.putStringArrayListExtra(KEY, list); //where list is ArrayList which you want to pass 

antes de comenzar la actividad. Y para obtener ArrayList en otra actividad, incluya

 Bundle bundle = getIntent().getExtras(); if (bundle != null) { temp = bundle.getStringArrayList(KEY); // declare temp as ArrayList } 

usted podrá pasar ArrayList a través de esto. Espero que esto sea útil para usted.