Intent.putExtra List

Posible duplicado:
Cómo poner una lista en bash

Quiero pasar una lista de una actividad a otra. Hasta ahora no he tenido éxito. Este es mi código

//desserts.java

private List data; @Override public void onCreate(Bundle icicle) { //Code data.add(new Item(10, "dessert1")); data.add(new Item(11, "dessert2")); data.add(new Item(12, "dessert3")); data.add(new Item(13, "dessert4")); data.add(new Item(14, "dessert5")); data.add(new Item(15, "dessert6")); data.add(new Item(16, "dessert7")); data.add(new Item(17, "dessert8")); data.add(new Item(18, "dessert9")); data.add(new Item(19, "dessert10")); data.add(new Item(20, "dessert11")); //Some more code } @Override public void onClick(View v) { Intent view_order_intent = new Intent(this, thirdpage.class); view_order_intent.putExtra("data", data); startActivity(view_order_intent); } 

Pero no puedo poner los datos de esta manera. Hice esta pregunta antes, pero no pasó mucho.
Amablemente ayuda. También ayúdame a obtener datos en la próxima actividad.

Asumiendo que su Lista es una lista de cadenas, haga de los datos una ArrayList y use intent.putStringArrayListExtra("data", data)

Aquí hay un esqueleto del código que necesita:

  1. Declarar lista

     private List test; 
  2. Lista de Inicios en el lugar apropiado

     test = new ArrayList(); 

    y agregue datos según corresponda para la test .

  3. Pase al bash de la siguiente manera:

     Intent intent = getIntent(); intent.putStringArrayListExtra("test", (ArrayList) test); 
  4. Recuperar datos de la siguiente manera:

     ArrayList test = getIntent().getStringArrayListExtra("test"); 

Espero que ayude.

Si usa ArrayList en lugar de list, entonces su problema será resuelto. En su código solo modifique List in ArrayList.

 private List data; 

puedes hacerlo de dos maneras

  • Serializable

  • Parcelable.

Este examen le mostrará cómo implementarlo con serializable

 class Customer implements Serializable { // properties, getter setters & constructor } // This is your custom object Customer customer = new Customer(name, address, zip); Intent intent = new Intent(); intent.setClass(SourceActivity.this, TargetActivity.this); intent.putExtra("customer", customer); startActivity(intent); // Now in your TargetActivity Bundle extras = getIntent().getExtras(); if (extras != null) { Customer customer = (Customer)extras.getSerializable("customer"); // do something with the customer } 

Ahora mira esto. Este enlace le dará una breve descripción de cómo implementarlo con Parcelable.

Mira esto. . Esta discusión le permitirá saber cuál es la mejor manera de implementarlo.

Gracias.

  //To send from the activity that is calling another activity via myIntent myIntent.putExtra("id","10"); startActivity(myIntent); //To receive from another Activity Bundle bundle = getIntent().getExtras(); String id=bundle.getString("id");