Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 27/02/13, 11:08:34
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Pasar variables propias

Buenos dias! vengo con una duda que he estado buscando y no he encontrado, por si ya esta resuelta y saben donde diganmelo para evitar responder otra vez con lo mismo.

Quiero pasar una variable de una actividad a otra, pero no una variable predefinida como integer o string, quiero pasar un LinkedList<Imagen> donde Imagen es una clase que me he creado yo donde tiene atributos tipicos como posicionX, posicionY Bitmap etc.
Intento hacerlo y cuando esta vacio, no me da ningun error, pero cuando tiene algun elemento salta un error, tengo el codigo siguiente:
Código:
public void onClickPrevisualizar(View v){
    Intent i = new Intent(ActividadPrincipal.this, ActividadPrevisualizar.class );
    Bundle b = new Bundle();
    b.putSerializable("listaImagenes", this.modelo.getListaFiguras());
    i.putExtras(b);
    startActivity(i);
}
este metodo se lo asigno a un boton.

Muchas gracias por adelantado!
Responder Con Cita


  #2  
Viejo 27/02/13, 11:38:38
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Para poder pasar un objeto mediante un Bundle debe ser Parcelable o Serializable. En tu caso debería funcionarte bien porque LinkedList es Serializable.

Posiblemente Imagen tenga que implementar también Serializable para que el LinkedList lo serialice, pero ahora mismo no lo se. Nunca he tenido que pasar colecciones de objetos propios. Cuando hago objetos propios los hago Parcelables y los paso en forma de Array con putParcelableArray.
Responder Con Cita
  #3  
Viejo 28/02/13, 09:19:03
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Ayer estuve todo el dia y no consegui arreglarlo :S como haces tu para pasar objetos propios con parceables? yo intente ponerlo con serializable (la clase imagen) y nada...me seguia dando fallo..
Responder Con Cita
  #4  
Viejo 28/02/13, 10:41:27
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Tu objeto propio debe implementar Parcelable, y luego el objeto que pasas por parámetro es un LinkedList<Parcelable> (yo siempre lo hago con ArrayList, pero debería funcionar igualmente). Como tu objeto implementa Parcelable es compatible con LinkedList<Parcelable>.
Responder Con Cita
  #5  
Viejo 28/02/13, 11:23:02
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Me puedes poner un ejemplo en codigo de hacer el objeto propio Parcelable? te refieres a que mi clase imagen tiene que implementar Parcelable?
Responder Con Cita
  #6  
Viejo 28/02/13, 13:44:47
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Creo que he conseguido soluccionarlo (aunque no de esa manera y no estoy seguro de que sea la mejor forma), pongo aqui lo que hice por si a alguien tambien tiene este problema:

He puesto a mi objeto listaFiguras el atributo static y lo he hecho publica, es decir cambie en la declaracion:

private LinkedLIst<Imagen> listaFiguras;

por:

public static LinkedList<Imagen> listaFiguras;

de esa manera puedo actuar con ella en todas las actividades sin tener que preocupareme de pasarla con intent.

Repito, no se si es la mejor manera, pero me ha funcionado.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 21:13:57 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007