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 globalIntent 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(){@Overridepublic 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(); } });