Estoy tratando de pasar un arrayList a otra actividad usando intenciones. Aquí está el código de la primera actividad.
case R.id.editButton:
Toast.makeText(this, "edit was clicked", Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, editList.class);
intent.putStringArrayListExtra("stock_list", stock_list);
startActivity(intent);
break;
Aquí es donde trato de recuperar la lista en la segunda actividad. ¿Algo anda mal aquí?
Intent i = new Intent(); //This should be getIntent();
stock_list = new ArrayList<String>();
stock_list = i.getStringArrayListExtra("stock_list");
fuente
intent.putStringArrayListExtra
,intent.getStringArrayListExtra
ogetSerializableExtra
existe. ¿Y si uso eclipse? ¿Tengo que descargar y agregar la biblioteca Gson?si usa la lista de matriz genérica con clase en lugar de un tipo específico como
EX:
private ArrayList<Model> aListModel = new ArrayList<Model>();
Aquí, Modelo = Clase
Recibir la intención como:
aListModel = (ArrayList<Model>) getIntent().getSerializableExtra(KEY);
DEBE RECORDAR:
Aquí Model-class debe implementarse como: ModelClass implementa Serializable
fuente
Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, aListModel);
Suponga que necesita pasar una lista de matrices de la siguiente clase de la actividad actual a la siguiente actividad // clase de los objetos que están en la lista de matrices // recuerde implementar la clase desde la interfaz serializable // serializable significa que convierte el objeto en un flujo de bytes y ayuda para transferir ese objeto
public class Question implements Serializable { ... ... ... }
en su actividad actual probablemente tenga una ArrayList de la siguiente manera
ArrayList<Question> qsList = new ArrayList<>(); qsList.add(new Question(1)); qsList.add(new Question(2)); qsList.add(new Question(3)); // intialize Bundle instance Bundle b = new Bundle(); // putting questions list into the bundle .. as key value pair. // so you can retrieve the arrayList with this key b.putSerializable("questions", (Serializable) qsList); Intent i = new Intent(CurrentActivity.this, NextActivity.class); i.putExtras(b); startActivity(i);
para obtener la lista de arrays dentro de la siguiente actividad
//get the bundle Bundle b = getIntent().getExtras(); //getting the arraylist from the key ArrayList<Question> q = (ArrayList<Question>) b.getSerializable("questions");
fuente
//arraylist/Pojo you can Pass using bundle like this Intent intent = new Intent(MainActivity.this, SecondActivity.class); Bundle args = new Bundle(); args.putSerializable("imageSliders",(Serializable)allStoriesPojo.getImageSliderPojos()); intent.putExtra("BUNDLE",args); startActivity(intent); Get SecondActivity like this Intent intent = getIntent(); Bundle args = intent.getBundleExtra("BUNDLE"); String filter = bundle.getString("imageSliders"); //Happy coding
fuente
public class StructMain implements Serializable { public int id; public String name; public String lastName; }
este es mi artículo. implementar Serializable y crear ArrayList
ArrayList<StructMain> items =new ArrayList<>();
y poner en Bundle
Bundle bundle=new Bundle(); bundle.putSerializable("test",items);
y cree un nuevo Intent que ponga Bundle en Intent
Intent intent=new Intent(ActivityOne.this,ActivityTwo.class); intent.putExtras(bundle); startActivity(intent);
para recibir paquete inserte este código
Bundle bundle = getIntent().getExtras(); ArrayList<StructMain> item = (ArrayList<StructMain>) bundle.getSerializable("test");
fuente