Por un lado cuando se invoque a la nueva actividad deberemos realizarlo de la siguiente manera:
Intent intent = new Intent(this, MI_CLASE.class);
intent.putExtra("nombre", "Droide Code");
intent.putExtra("id", 10);
intent.putExtra("activo", true);
Como podemos ver lo único que tenemos que hacer es usar el método putExtra del intent para añadir la información que deseemos. El método está sobrecargado para poder añadir todo tipo de información (String, byte, int, long, boolean, etc)
En la Actividad destino podremos recuperar la información de la siguiente manera:
Bundle extras = getIntent().getExtras();
String s = extras.getString("nombre");
int i = extras.getInt("id");
boolean b = extras.getBoolean("activo");
boolean b = extras.getBoolean("activo");
Simplemente deberemos acceder al Intent con el método getIntent() y posteriormente al objeto Bundle que contiene los extras.
Devolver datos a la actividad origen
Otra posibilidad es devolver información desde la segunda actividad a la de origen cuando esta termine.Para ello la invocación desde la actividad original deberemos hacerlo de la siguiente manera:
startActivityForResult(intent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode==1 && resultCode==RESULT_OK) {
//código a ejecutar...
}
}
Por último debemos incluir el siguiente código en la actividad destino para devolver el resultado que deseemos y finalizar la actividad:
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
Deberemos instanciar un nuevo Intent y enviarlo junto con el resultado usando el método setResult(). Por último finalizaremos la actividad con finish()
Nota: en la intención que viaja desde la segunda actividad a la primera igualmente puede enviarse la información que deseemos usando el método putExtra.
No hay comentarios:
Publicar un comentario