Devolver el resultado de la intención cuando la actividad se cierra con el botón Atrás
Comienzo una nueva Activity
de la Activity
original con startActivityForResult(intent, requestCode)
. Quiero devolver datos a la Activity
original cuando el usuario presiona el botón Atrás, así que cuando vuelva a la Activity
original. He intentado dos métodos:
-
onBackPressed()
:- Enviar un intento al navegador para abrir URL específica
- ¿Cómo puedo hacer que mi aplicación aparezca en el selector de intenciones sólo para determinadas URL?
- ¿Distinguir entre el tiempo de espera de la pantalla y el botón de encendido?
- ¿Cuál es el propósito de las categorías de intención?
- Cómo adjuntar archivos múltiples al cliente de correo electrónico en android
@Override public void onBackPressed() { super.onBackPressed(); Intent intent = new Intent(); intent.putIntegerArrayListExtra(SELECTION_LIST, selected); setResult(RESULT_OK, intent); }
-
onPause()
:@Override protected void onPause() { super.onPause(); Intent intent = new Intent(); intent.putIntegerArrayListExtra(SELECTION_LIST, selected); setResult(RESULT_OK, intent); }
Desafortunadamente, ninguno de ellos funcionó ( resultCode
no es RESULT_OK
en onActivityResult()
). ¿Cuál es la manera correcta de hacer esto? ¡Gracias!
- Resolver el URI de diferentes fuentes en Android mientras se abre una imagen
- FLAG_ACTIVITY_SINGLE_TOP no funciona
- Cómo pasar una coma ',' carácter ACTION_DIAL intención en Android
- El envío por correo electrónico de texto con formato HTML solo funciona con el cliente de Gmail
- ¿Cómo detectar las aplicaciones de Android que pueden manejar la acción de intención solicitada?
- Definir la acción de la aplicación externa en AndroidManifest.xml, Actividad principal y secundaria
- Cómo eliminar la tarea de inicio automático en Android
- Ocultar el icono de la aplicación y ejecutarlo
Prueba esto :
@Override public void onBackPressed() { // super.onBackPressed(); Intent intent = new Intent(); intent.putIntegerArrayListExtra(SELECTION_LIST, selected); setResult(RESULT_OK, intent); finish(); }
Dado que esta pregunta sigue recibiendo atención, estoy publicando una respuesta más correcta que la que acepté hace dos años, gracias a MasterGaurav por la punta .
@Override public void onBackPressed() { Intent intent = new Intent(); intent.putIntegerArrayListExtra(SELECTION_LIST, selected); setResult(RESULT_OK, intent); super.onBackPressed(); }
Prueba esto:
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { onBackPressed(); return true; } return super.onKeyDown(keyCode, event); }
Inicie una nueva Actividad de la Actividad original con startActivityForResult(intent, requestCode)
Cuando desea devolver datos a la Actividad original cuando el usuario presiona el botón Atrás, por lo que cuando vuelve a la actividad original.
@Override public void onBackPressed() { super.onBackPressed(); Intent intent = new Intent(); intent.putIntegerArrayListExtra(SELECTION_LIST, selected); setResult(RESULT_OK, intent); }
Si usted quiere conseguir el resultado de la actividad recientemente abierta de la sola actividad
onActivityResult(int requestCode, int resultCode, Intent data)
Método de la actividad original
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); }
- Conexión Bluetooth entre Android y Lego Mindstorm NXT
- OnClickListener de Child que impide el golpe de vista de Android ViewPager