2011-01-04 37 views
9

Me gustaría obtener ayuda para enviar datos al revés a un Activity que ya se está ejecutando.Enviar datos al revés a una actividad anterior

Quiero que el usuario pueda seleccionar una opción de una lista y luego esa selección se use en una actividad anterior. Sé cómo hacerlo en el futuro usando intenciones pero no puedo ver cómo funcionaría en este caso sin tener un número arbitrario de las mismas ventanas de actividad ejecutándose al mismo tiempo.

Más o menos como cambiar la configuración dentro del teléfono pero más tener acceso a una cadena. Si necesita más información solo pregunte.

Respuesta

7

Hay dos maneras de hacer esto, la primera es en lugar de llamar startActivity(), llama a startActivityForResult(), esto es lo que la documentación tiene que decir al respecto:

A veces se quiere conseguir una resultado de una actividad cuando termina. Por ejemplo, puede iniciar una actividad que le permita al usuario elegir a una persona en una lista de contactos; cuando termina, devuelve a la persona que fue seleccionada. Para hacerlo, llame a la versión startActivityForResult (Intent, int) con un segundo parámetro entero que identifique la llamada. El resultado volverá a través de su método onActivityResult (int, int, Intent).

http://developer.android.com/reference/android/app/Activity.html

La otra manera de hacerlo es enviar un mensaje de difusión en el final de su actividad, y registrar un BroadcastReceiver() en su actividad original.

1

Si inicia la segunda actividad utilizando startActivityForResult() en lugar de startActivity, a continuación, cuando la segunda actividad completa se puede establecer un resultCode y un Intent. A continuación, llamar al método:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
} 

en su primera Activity, donde se puede leer el resultCode y los datos Intent

Cuestiones relacionadas