Quiero personalizar el botón de retroceso de la actividad en la barra de acción, no en el botón de retroceso de la tecla física. He anulado el onBackPressed()
método. Funciona con el botón de retroceso de mi emulador, pero no con el botón de retroceso de la barra de acción.
Quiero que suceda con la barra de acciones. ¿Cómo puedo hacer esto?
Aquí está mi código:
@Override
public void onBackPressed() {
Toast.makeText(getApplicationContext(),"Back button clicked", Toast.LENGTH_SHORT).show();
return;
}
He usado este brindis, ya sea que el retroceso esté funcionando o no, pero la implementación real cambia, como volver a la actividad anterior. Pero esto no funciona con el botón presente en la parte superior de la barra de acciones (además del título de la actividad).
Por favor, cualquiera podría especificarme el problema.
return true;
areturn super.onOptionsItemSelected(item)
. Luego, puede hacer que suceda algo cuando el usuario hace clic en el botón de retroceso de la barra de acciones, pero aún conserva la misma funcionalidad del botón.Si desea que el botón de retroceso de ActionBar se comporte de la misma manera que el botón de retroceso del hardware:
fuente
android.R.id.home
no disparasetHasOptionsMenu(true)
al método onCreate del fragmentoDos cosas a tener en cuenta: el usuario puede presionar el botón de retroceso o presionar el botón de inicio de la barra de acción.
Entonces, si desea redirigirlo al mismo destino, puede hacerlo.
Esto llevará al usuario a la intención presionando la tecla o el botón de la barra de acción.
fuente
android.R.id.home
no disparafuente
Lo siento, la mía es una respuesta tardía, pero para cualquier otra persona que llegue a esta página con la misma pregunta, había intentado lo anterior:
pero esto no pudo capturar el botón "Atrás".
Finalmente encontré un método que me funcionó en https://stackoverflow.com/a/37185334/3697478 que es anular el "onSupportNavigateUp ()" ya que estoy usando la barra de acciones de la biblioteca de soporte "AppCompatActivity". (Existe un equivalente "onNavigateUp ()" para la nueva biblioteca de barra de acciones / barra de herramientas).
y eliminé la sección "android: parentActivityName =". MainActivity "del archivo de manifiesto.
fuente
Lo he logrado, usando simplemente dos pasos,
Paso 1: Vaya a AndroidManifest.xml y agregue el parámetro en la etiqueta - android: parentActivityName = ". Home.HomeActivity"
ejemplo:
Paso 2: en ActivityDetail agregue su acción para la página / actividad anterior
ejemplo:
fuente
Si desea volver a la instancia anterior de una actividad presionando el botón de inicio de ActionBar, sin volver a crearla , puede anular el método getParentActivityIntent para usar el de la pila de actividades:
EDITAR:
También puede lograr el mismo resultado
configurando el launchMode de su actividad principal en singleTop.
Así que configure
android:launchMode="singleTop"
la actividad de los padres en su manifiesto.O puede usar la bandera FLAG_ACTIVITY_CLEAR_TOP con la intención UP.
referencia: Proporcionar navegación ascendente
fuente
(1) Agregue la actividad de los padres para la actividad de su hijo (AndroidManifest.xml)
(2) anule el método onSupportNavigateUp dentro de la actividad secundaria
fuente
fuente
Hay varias formas de configurar el botón Atrás en la barra:
1) el método
.setDisplayHomeAsUpEnabled(true);
lo hará, y luego simplemente puede anularandroid.R.id.home
2) agregando
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="my.package.parrent" />
en Android Manifest, pero en este caso no puede anularandroid.R.id.home
en OnOptionsMenuSelected... para aquellos que se preguntan por qué no les funciona ...
fuente