Actividad Principal
Creamos el siguiente método:
@Override
protected
void
onActivityResult(
int
requestCode,
int
resultCode, Intent data) {
// TODO Auto-generated method stub
if
((requestCode == request_code) && (resultCode == RESULT_OK)){
data.getDataString() //cogemos los datos que devuelve la segunda actividad
}
}
Este método sirve para ejecutar las acciones que se realizará la clase una vez la segunda actividad haya devuelto los datos.
Iniciamos la segunda actividad de tal forma que reciba los datos una vez esta acabe:
int
request_code =
1
; //declarado como global
Intent i =
new
Intent(
this
, SecondActivity.
class
);
startActivityForResult(i, request_code);
Actividad Secundaria
Devolvemos desde el segundo activity los datos que queramos.
Intent data =
new
Intent();
data.setData(Uri.parse(cad));
setResult(RESULT_OK, data);
finish();
cad --> es la cadena que devolvemos al activity principal.
Ejemplo, creamos una ListView y el elemento elegido es el que se devuelve:
lvString = (ListView)findViewById(R.id.lv_Strings);
ArrayAdapter<String> adapter =
new
ArrayAdapter<String>(
this
, android.R.layout.simple_list_item_1, cargarListView());
lvString.setAdapter(adapter);
lvString.setOnItemClickListener(
new
OnItemClickListener(){
@Override
public
void
onItemClick(AdapterView<?> arg0, View arg1,
int
arg2,
long
arg3) {
// TODO Auto-generated method stub
String cad = (String)lvString.getAdapter().getItem(arg2);
Intent data =
new
Intent();
data.setData(Uri.parse(cad));
setResult(RESULT_OK, data);
finish();
}
});