Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


La actividad de Android vuelve a la actividad que la inició en lugar de la actividad de los padres al presionar el botón de la barra de navegación.

Tengo el siguiente escenario:

En el manifiesto android tengo tres actividades: ActivityA ActivityB – padre de ActivityA ActivityC

Lo que quiero hacer es iniciar ActivityA desde ActivityC usando intention.StartActivity (). La actividad se ha iniciado correctamente. Ahora quiero regresar a ActivityC usando el botón Atrás de la barra de acciones (esquina superior izquierda), pero como ActivityA tiene ActivityB como padre (como declarado en android manifest), el botón de la barra de acción me lleva a ActivityB en lugar de ActivityC anterior. Si utilizo el botón de teclado trasero, me redireccionan a ActivityC.

¿Qué puedo hacer para obtener el mismo resultado en ambos casos "navegar hacia atrás". El resultado que busco es que sea redirigido a la actividad que inició ActivityA y no a la actividad de los padres. ¿Es posible?

  • Obtener otro hijo que comparte al padre con la vista actual
  • ¿Cómo puedo volver a una actividad de padres correctamente?
  • 3 Solutions collect form web for “La actividad de Android vuelve a la actividad que la inició en lugar de la actividad de los padres al presionar el botón de la barra de navegación.”

    No debe definir ActivityB como padre para ActivityA en manifiesto. En su lugar, maneje onOptionsItemSelected en ActivityA así:

    public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); } return super.onOptionsItemSelected(item); } 

    Cuando llama a startActivity (), hágalo así:

     Intent intent = new Intent(callingActivity.this, destinationActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); 

    Pruebe lo siguiente:

     @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; } return super.onOptionsItemSelected(item); } 

    Esto emulará una pulsación de botón de retroceso, que además preservará el estado de la Activity que procede (pestañas, posición de desplazamiento).

    (El crédito va a @Kise por sugerir esto en https://stackoverflow.com/a/31331757/2703209 )

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.