¿Cómo puedo enviar datos utilizando el acabado?
Como puedo enviar datos de una actividad a otra usando esto:
intent.putExtra("Name", Value);
Cómo puedo enviar datos cuando estoy usando finish()
para volver a la actividad anterior.
- ¿Cuáles son las diferencias entre FLAG_ACTIVITY_RESET_TASK_IF_NEEDED y FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP?
- Más información sobre IntentService
- Uso de 2 o más servicios de intención GCM en una aplicación
- Recibir la misma intención difundió varias veces pero sólo envió una vez
- ¿Cómo usar un Android SearchView sin singleTop?
En mi aplicación de Activity_A
voy a Activity_B
. En Activity_B
estoy marcando una ubicación en el mapa, lo que me da latitud y longitud. Entonces quiero usar este lat y lng en Activity_A
. Pero no quiero volver a Activity_A
usando una intención, porque no quiero recrear la Activity_A
ya que algunos datos ya llenos se perderán.
- Se pierde el envío de datos a la actividad principal
- ¿Cómo saber si la imagen es paisaje o retrato?
- Cómo volver a una actividad específica si las actividades son implementadas por la misma clase
- Android - Cómo interceptar la intención de 'Instalar aplicación'
- ¿Está bien cancelar el registro de 'BroadcastReceiver' dinámico del propio método onReceive () del receptor?
- La intención de la cámara o la galería destruye la actividad antigua en algunos dispositivos
- ActivityNotFoundException intentando cargar los contactos de ContentProvider?
- ¿Cómo borrar los datos de intención en Actividad después de abrirlos desde url?
Como usted está usando el intent.putExtra("Name", Value);
, Utilizar la misma cosa al terminar la actividad también.
Por ejemplo:
De activityA usted llama a activityB como:
intent.putExtra("Name", Value); now instead of startActivity() use `startActivityForResult()`
Y de activityB, al terminar la actividad, llame a:
setResult(RESULT_OK);
Ahora en activityA, su onActivityResult
será llamado, que es como:
@Anular
protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub }
Así que de esta manera usted puede manejarlo.
En la actividad A:
// Add more, if you call different activities from Activity A private static final REQUEST_GET_MAP_LOCATION = 0; void doSomething() { ... startActivityForResult(theIntentYouUseToStartActivityB, REQUEST_GET_MAP_LOCATION); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_GET_MAP_LOCATION && resultCode == Activity.RESULT_OK) { int latitude = data.getIntExtra("latitude", 0); int longitude = data.getIntExtra("longitude", 0); // do something with B's return values } }
En la Actividad B:
... setResult(Activity.RESULT_OK, new Intent().putExtra("latitude", latitude).putExtra("longitude", longitude)); finish(); ...
Llame a su Activity_B
con startActivityForResult()
, desde su Activity_A
:
//Starting a new Intent Intent nextScreen = new Intent(getApplicationContext(), Activity_B.class); // starting new activity startActivityForResult(nextScreen,1000);
Una vez que haya terminado de trabajar en la Activity_B
, debe llamar a setResult()
para establecer los datos, seguido de finish()
como este
//Starting the previous Intent Intent previousScreen = new Intent(getApplicationContext(), Activity_A.class); //Sending the data to Activity_A previousScreen.putExtra("Bla"," Blabla"); setResult(1000, previousScreen); finish();
Esto le llevará de nuevo a su Activity_A
anterior.
En Activity_A
, anule onActivityResult()
.
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String bla = data.getStringExtra("Bla"); }
Encontrado aquí
startActivityForResult
para iniciar B y setResult
antes de B finish
y manejar onAcitivityResult
en A