Java - Pasar ArrayList de objetos a otra clase

   
Vista:

Pasar ArrayList de objetos a otra clase

Publicado por Ragnar (4 intervenciones) el 06/07/2017 17:43:23
Buenas a todos, lo que necesito es pasar ArrayList de objetos a otra clase.

En una clase tengo el arraylist donde lo voy llenando con objetos, lo que quiero hacer es mostrar el arraylist en otra clase cuando presione el botón "mostrar".
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jose Manuel

Pasar ArrayList de objetos a otra clase

Publicado por Jose Manuel (46 intervenciones) el 06/07/2017 19:47:41
Hola,

das poco detalle de tu aplicacion y de lo que quieres lograr,
asi que asumire que es una aplicacion de escritorio,

lo mas sencillo seria implementar un JList, para mostrar tus elementos.

como pasas el arreglo de una clase a otra depende quien es primero,
segun entiendo en tu clase llenas los objetos y alistas el array

entonces yo asumiria que lo correcto seria esto:

metodo click del boton mostrar
//aqui obtendria el array de mi otra clase
ArrayList a=MiclaseArray.obtenerArray();
modeloLista.setArray(a);//esto ya depende como implementes el modelo de Jlist
y listo.

te dejo un link de como implementar un jlist
https://docs.oracle.com/javase/tutorial/uiswing/components/list.html

si tu aplicacion fuera consola,
tan secillo
//aqui obtendria el array de mi otra clase
ListArray a=MiclaseArray.obtenerArray();
como un for(int i=0;i<a.lenght;i++){
System.out.println(a.get(i));
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar ArrayList de objetos a otra clase

Publicado por Ragnar (4 intervenciones) el 06/07/2017 20:01:43
Gracias por comentar, me olvide de aclarar que estoy usando Android Studio.

Tengo una clase con la siguiente estructura:

Clase Entrada:

//variables
id, importe, categoria

//constructor
//setters y getters

Tengo la clase main que lo único que hace es alojar la vista del ArrayList (que contiene los objetos tipo "Entrada") en un Listview y un botón "AGREGAR", por ahora tengo cargado el ArrayList manualmente con un par de entradas para verificar que funciona.

El botón "AGREGAR" te lleva a otra activity para la carga de cada dato (id, importe, categoria)

En esta nueva activity los datos se alojan en un nuevo ArrayList igual al de la clase main en forma de objeto.

Lo que quiero hacer es capturar esos datos pero que los agregue al ArrayList del main.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose

Pasar ArrayList de objetos a otra clase

Publicado por jose (46 intervenciones) el 06/07/2017 21:12:18
Hola, haberlo dicho antes que estabas en android.

haber si te entiendo

tu lo que quieres es que tus objeto tipo entrada se agreguen, sean agregados a tu arraylist de tu activity main,, que imagino que ese array list del main es el que consume el listview por medio de un adapter? es así?

bueno hay varias soluciones, la más sencilla y no tan ortodoxa, es
que vuelvas public static final tu array list de main, y desde tu otro activity accedas directamente a este array list y no aun nuevo.
por ejemplo main.listaEntrada.

la mejor seria por medio del Intent
startActivityForResult(intento,valor);

aquí un ejemplo si quieres este segundo camino.
http://www.proyectosimio.com/es/programacion-android-startactivityforresult-lanzar-una-actividad-para-recibir-un-resultado/

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar ArrayList de objetos a otra clase

Publicado por Ragnar (4 intervenciones) el 07/07/2017 19:25:35
Muchísimas gracias, de todas las maneras que probé esta parece ser la mas sencilla, pongo en practica lo de pasar a public static final el arraylist y te cuento como me fue.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose

Pasar ArrayList de objetos a otra clase

Publicado por Jose (46 intervenciones) el 07/07/2017 20:00:17
creo que cabe decir, que lo de final, solo es si quieres que tu objeto ArrayList sea inmutable, es decir que no lo puedas cambiar por otro en otro lado de la aplicación, pero por si una extraña razón si quieres cambiarlo, solo con public static te vale.

saludos.

nos cuentas, como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar ArrayList de objetos a otra clase

Publicado por Ragnar (4 intervenciones) el 12/07/2017 15:30:35
Bueno quiero contarles que termine utilizando startActivityForResult y me esta yendo muy bien con el tema de pasar objetos y variables con Bundles.

Ahora no logro recibir un objeto que selecciono del listview para editarlo.

Lo paso de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
listadatos.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
   @Override
   public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        Sueldo e1 = (Sueldo) lista.get(position);
        Intent i = new Intent(getApplicationContext(), Editar.class);
        Bundle bedit = new Bundle();
        bedit.putSerializable("aeditar", (Serializable) e1);
        i.putExtras(bedit);
        startActivityForResult(i, 2);
        return true;
    }
});

y lo recibo de la siguiente manera en el onCreate de Editar.class:

1
2
3
Bundle bedit = getIntent().getExtras(); bedit: "Bundle[{aeditar=packagename.Sueldo@41dec370}]"
s1 = (Sueldo) bedit.getSerializable("aedit"); s1: null bedit: "Bundle[{aeditar=packagename.Sueldo@41dec370}]"
edicion.add(s1); s1: null

(lo que esta en negrita es lo que me dice el compilador)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose

Pasar ArrayList de objetos a otra clase

Publicado por Jose (46 intervenciones) el 13/07/2017 00:04:48
Hola me alegra leer que has tenido un buen avance con tu problema.

esta lista esta en tu main verdad?.

estoy seguro que te retorna null, porque has escrito mal el nombre XD, no te preocupes suele pasar

lo envias como
bedit.putSerializable("aeditar", (Serializable) e1);//el objeto lo estas guardando con el nombre aeditar

pero lo quieres recuperar como

s1 = (Sueldo) bedit.getSerializable("aedit"); //aqui esta claro que lo llamas como aedit, le falto el ar

y aedit no es igual aeditar XD, por eso retorna null porque no existe ningun objeto con ese nombre.

solucionado eso debería funcionar, al menos que tengas el error que estoy pensando.

Pero prueba a poner el nombre bien y nos cuentas.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar ArrayList de objetos a otra clase

Publicado por Alex (1 intervención) el 20/11/2017 06:54:38
Oooo agradezco enormemente este tema y esta respuesta. Me sirvio enormemente, son las 3 de la mañana y recien pude saber como resolver esa duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pasar ArrayList de objetos a otra clase

Publicado por sd (1 intervención) el 20/11/2017 06:56:01
Gracias Jose :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar