post icon

Como pasar parametros desde un Activity a otro en Android

Mientras le hacemos navegar al usuario entre los distintos activities de nuestra aplicación Android, podemos necesitar pasar información o parametros entre uno y otro. Es posible pasar datos primitivos como complejos o personalizados.

Primero los tipos de datos primitivos o simples lo pasamos de este modo, desde el activity que invoca al nuevo activity escribimos lo siguiente:

Intent intent = new Intent(LlamadorActivity.this, NuevoActivity.class);
intent.putExtra("id", 1);
intent.putExtra("nombres", "Juan Perez");
startActivity(intent);

Y el nuevo activity leería estos datos así:

Integer id = getIntent().getExtras().getInt("id");
String nombres = getIntent().getExtras().getString("nombres")

Ahora bien, podremos tener alguna clase personalizada que podriamos necesitar pasar y putExtra no soporta directamente el tipo Object. Para hacerlo entonces recurrimos a la serialización. Supongamos que tenemos una clase usuario, hacemos que implemente de Serializable

import java.io.Serializable;

public class Usuario implements Serializable {
    private Integer Id;
    private String Nombres;

    public Integer getId() {
        return Id;
    }

    public void setId(Integer Id) {
        Id = Id;
    }

    public String getNombres() {
        return Nombres;
    }

    public void setNombres(String Nombres) {
        Nombres = Nombres;
    }
}

El activity que invoca quedaría así:

Intent intent = new Intent(LlamadorActivity.this, NuevoActivity.class);
Usuario usuario = new Usuario();
usuario.setId(1);
usuario.setNombres("Juan Perez");
intent.putExtra("Usuario", usuario);
startActivity(intent);

Y finalmente el activity que recepciona esto, quedaría asi:

Usuario usuario = (Usuario) getIntent().getSerializableExtra("Usuario");

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder