Usar Parcelable en android

Hola vergasianos veremos como usar Parcelable en android studio.  estamos viendo algunos ejercicios de volley en nuestra web y estuvimo utilizando Parcelable, como es costumbre algunos usuarios me han bombardeado con muchas preguntas entonces en este articulo se tratara de abarcar lo mejor posible el tema, si no sabes que es o para que sirve te invito a que sigas leyendo.

 

Como Usar Parcelable en android

como usar parcelable

Hay momentos en nuestra vida cotidiana de programadores que tenemos que pasar objetos entre actividades, tenemos algunas opciones adecuadas y otras no tanto.

Tal vez lo primero que se nos ocurra sea guardar el objeto en un campo static de una de nuestras clases, y recuperarlo en la nueva actividad.

private static final String EJEMPLO_MUY_SERIO = "LLAVECITA_BONITA";

Pero este tipo de prácticas no están muy bien vistas ya que puedes incurrir en problemas de concurrencia, leaks de memoria, etc.

Puede que lo siguiente que se te ocurra sea implementar en el objeto la interfaz serializable. Esta solución no es mala para objetos pequeños pero en la práctica es muy lenta y si vamos a serializar un objeto complejo y grande, no es la mejor solución.

public class Persona implements Serializable {
private String nombre;
private int edad;

public Persona (String nombre, int edad) {
this.nombre = nombre;
this.edad= edad;
  }

public String getNombre() {
    return nombre;
  }
public int getEdad() {
    return edad;
  }
}

Un día lluvioso mientras bebía el equipo de android decidió joder ayudar e inventarse los tipos parcelables, que en la práctica es como escribir los tipos en un Bundle y recuperarlos después.

public class Persona implements Parcelable {

 private String nombre;
 private int edad;


 public void setNombre(String nombre) {
 this.nombre= nombre;
 }

 public void setEdad(int edad) {
 this.edad= edad;
 }

 @Override
 public void writeToParcel(Parcel dest, int flags) {
 dest.writeString(nombre);
 dest.writeInt(edad);
 }
 
 private void readFromParcel(Parcel in) {
 nombre= in.readString();
 edad= in.readInt();
 }
 
 public Persona (){
 
 }
 
 public Persona (Parcel in){
 readFromParcel(in);
 }
 
    public static final Creator<Persona > CREATOR = new Creator<Persona >() {
        @Override
        public Usuario createFromParcel(Parcel in) {
            return new Persona (in);
        }

        @Override
        public Persona [] newArray(int size) {
            return new Persona [size];
        }
    };
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat