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

Respuesta
 
Herramientas
  #1  
Viejo 04/01/12, 21:45:26
Array

[xs_avatar]
budu budu no está en línea
Usuario novato en la web
 
Fecha de registro: ene 2012
Mensajes: 3
Tu operador: Movistar

Array de objetos AYUDA!!

Buenas mi pregunta es que estoy haciendo una aplicacion de futbol , mas o menos juego y tengo una duda.

Tengo una clase principal que son los jugadores que es un objeto Jugador, estos Jugadores estan en otro Objeto que es un club.

Vale hasta aqui bien, pero tengo otra Classe llamava ArryClubs que es un array donde contego todo los clubs, madrid,barça,etc... y quiero pasarla de una activity a otra, se pasar un arrya de objeto de una actividad a otra pero no se como pasar una array de objetos que esta contiene a su vez otro array de objetos.


Aqui el codigo del array de clubs, que quiero pasar entre activitys.
Código:
package pasar.com;

import java.util.ArrayList;

import android.os.Parcel;
import android.os.Parcelable;

public class ArrayClub extends ArrayList<Club> implements Parcelable {

	
	private Club clubs;
	
	public  ArrayClub()
	{
		
	}
	
	public void writeToParcel(Parcel club, int flags)
	{
		int size = this.size();
		
		club.writeInt(size);
		
		for (int i = 0; i < size; i++)
		{
			
			Club oc = this.get(i);
			
			club.writeString(oc.getNomClub());
			club.writeString(oc.getNomEntrenador());
			
				for(int j=0; j<size; j++)
				{
				
					
					club.writeString(oc.get(j).getNom());
					
					
				}
			}
		
		
	}
	public ArrayClub(Parcel in)
	{
		readfromParcel(in);
	}
	
	private void readfromParcel(Parcel in)
	{
		
		this.clear();
		
		int size = in.readInt();
		
		for (int i = 0; i < size; i++)
		{
		
		//el orden de los atributos SI importa
		
		Club oClub = new Club();
		
		
		oClub.setNomClub(in.readString());
		oClub.setNomEntrenador(in.readString());
		
		/// Aqui me da error porque me falta poner el 
		// array de objeto de jugadores y no se como ponerlo
		
	}

	public static final Parcelable.Creator CREATOR = new Parcelable.Creator()
	{
	public ArrayClub createFromParcel(Parcel in)
	{
	return new ArrayClub(in);
	}
	public Object[] newArray(int arg0)
	{
	return null;
	}
	};
	public int describeContents()
	{
	return 0;
	}
	
	
	
	
	
}

Codigo de 1 club.

Código:
package pasar.com;

import java.util.ArrayList;



public class Club extends  ArrayList<Jugador> {

	public String nomEntrenador;
	public String nomClub;
	

	
	
	public Club(String nomEntrenador, String nomClub,ArrayList<Jugador> vJugador
			) {
		super();
		
		
		this.nomEntrenador = nomEntrenador;
		this.nomClub = nomClub;
		ArrayList<Jugador> g = new ArrayList ();
		
		vJugador = g;
	}

	public Club()
	{
		
	}
	
	public String getNomEntrenador() {
		return nomEntrenador;
	}

	public String getNomClub() {
		return nomClub;
	}
	

	public void setNomEntrenador(String nomEntrenador) {
		this.nomEntrenador = nomEntrenador;
	}

	public void setNomClub(String nomClub) {
		this.nomClub = nomClub;
	}

	


}

Y aqui la clase que contiene 1 jugador
Código:
package pasar.com;

public  class Jugador  {
	
	
	private String nom;
	private String nacionalitat;
	private String posicio;
	private int pase;


	public  Jugador ()
	{
		
	}
	
	public Jugador(String nom) {
		super();
		this.nom = nom;
		
		
	}



	
	
	public void setNom(String nom) {
		this.nom = nom;
	}



	public String getNom() {
		return nom;
	}



	




}
Responder Con Cita


  #2  
Viejo 05/01/12, 19:04:36
Array

[xs_avatar]
Afsoon Afsoon no está en línea
Miembro del foro
 
Fecha de registro: may 2010
Mensajes: 225

Te recomiendo que para pasar "grandes" flujos de datos te crees una clase que se encargue de eso, en esa clase coges todos los datos desde la clase emisora y luego en la clase receptora los coges, es lo que he hecho para mi aplicación que tengo en desarrollo. Te aconsejo tambien si va a ser una activity que venga de 2+ activitys diferentes y que solo desde una activity obtendrás datos, yo al menos tengo un valor int que no cambia para pasarlo en el intent con Bundle y en la clase receptora comprueba si el intent con el bundle es diferente a null y si el caso que no sea null entonces hago ya el proceso de obtención. Ahora no tengo tiempo pero ahora te pongo un código de ejemplo de muestra .

RequestData.class (Este es el nombre que tengo)
Código:
public class RequestData {
        //Inserta aqui las variables que quieras
        private String nombre = null
        private String club = null;
        private static RequestData Instance = null;
        private static final int PASS = 1; //Esta variable era para lo que te dije del bundle pero lo recomiendo ponerlo en la clase emisora

        private synchronized static void createInstance(){
		if(INSTANCE == null)
			INSTANCE = new RequestData();
	}
	
	public static RequestData getInstance(){
		if(INSTANCE == null) createInstance();
		return INSTANCE;
	}
 
       // Sus respectivos gets and sets de tus variables.
}
clase emisora
Código:
RequestData rd = RequestData.getInstance();
//Los set correspondientes y el bundle
clase receptora
Código:
Request Data rd = RequestData.getInstance();
Bundle b;
if((b.getIntent().getExtras()) != null)
    //Aqui inserta un metodo para hacer la recolecion de datos y etc.
PD:No seria mal un code para Java y sea mas facil leer el codigo sino es una matanza intentar comprenderlo y un code que sea mas ancho para metodos mas grandes porque es imposible seguir el hilo a veces

Última edición por Afsoon Día 05/01/12 a las 19:23:41.
Responder Con Cita
  #3  
Viejo 05/01/12, 20:43:52
Array

[xs_avatar]
budu budu no está en línea
Usuario novato en la web
 
Fecha de registro: ene 2012
Mensajes: 3
Tu operador: Movistar

Gracias por la ayuda pero me he quedado igual, como pasas el request por el bundle? no lo e acabado de entender.
Responder Con Cita
  #4  
Viejo 05/01/12, 22:08:16
Array

[xs_avatar]
Afsoon Afsoon no está en línea
Miembro del foro
 
Fecha de registro: may 2010
Mensajes: 225

 Cita: Originalmente Escrito por budu Ver Mensaje
Gracias por la ayuda pero me he quedado igual, como pasas el request por el bundle? no lo e acabado de entender.
si quieres por el bundle puedes pasar un dato cualquier, uno inventado lo que sea, su unica función es para que el bundle no valga null, pero yo te digo eso es un apaño que yo hice porque mis datos solo vienen de una activity no es obligatorio que lo hagas con el Request Data ya te hes suficiente a no se que tengas que hacer algún apaño o cualquier otra cosa.
Responder Con Cita
Respuesta

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



Hora actual: 16:12:16 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /