En muchas aplicaciones (Calendario, Drive, Play Store) cuando tocas un botón e ingresas una nueva actividad, el ícono en la barra de título se convierte en un botón de retroceso, pero para la aplicación que estoy creando, no hace eso. ¿Cómo hago para que ese ícono lo lleve de regreso a la pantalla anterior?
android
user-interface
themes
titlebar
Dibujó
fuente
fuente
Respuestas:
Hay dos pasos sencillos para crear un botón de retroceso en la barra de título:
Primero, haga clic en el ícono de la aplicación usando el siguiente código en la actividad en cuya barra de título desea tener un botón de retroceso:
Después de haber agregado el código anterior, verá aparecer una flecha hacia atrás a la izquierda del icono de la aplicación.
En segundo lugar, después de haber hecho lo anterior, aún debe crear un código que aproveche el evento de clic. Para hacerlo, tenga en cuenta que, cuando hace clic en el icono de la aplicación,
onOptionsItemSelected
se llama a un método. Entonces, para volver a la actividad anterior, agregue ese método a su actividad y coloque unIntent
código en él que lo regresará a la actividad anterior. Por ejemplo, digamos que se llama la actividad a la que está intentando volverMyActivity
. Para volver a él, escriba el método de la siguiente manera:¡Eso es!
(En la API de desarrolladores de Android, recomienda jugar con el manifiesto y agregar cosas como
android:parentActivityName
. Pero eso no parece funcionar para mí. Lo anterior es más simple y más confiable).Y en tu actividad
fuente
usa este código
después de eso, escribe este código en el
onOptionsItemSelected
métodofuente
getActionBar()
me da un nulo; ¿Sabes por qué?Finalmente logré agregar correctamente el botón Atrás a la barra de acciones / barra de herramientas
fuente
1.- Agrega la actividad a AndroidManifest.xml y asegúrate de proporcionar los metadatos:
2.- Agrega el siguiente código al método onCreate de la actividad:
3.- Anula onOptionsItemSelected y usa el método estático NavUtils.navigateUpFromSameTask () para navegar y lanzar la pila.
fuente
Si su actividad extiende la actividad
Si su acción extiende AppCompatActivity
No hay nada más que hacer, consulte Agregar acción
[OPCIONAL] Para definir explícitamente la actividad principal, modifique su Manifest.xml de esta manera:
Ver Especificar la actividad de los padres
fuente
Si su actividad se extiende
AppCompatActivity
, debe anular elonSupportNavigateUp()
método de esta manera:Maneje su lógica en su
onBackPressed()
método y simplemente llame a ese métodoonSupportNavigateUp()
para que el botón Atrás en el teléfono y la flecha en la barra de herramientas hagan lo mismo.fuente
En primer lugar, en la función onCreate agregue la siguiente línea
y luego agregue la siguiente función en el código:
fuente
Primero necesitas escribir estos códigos
Luego agrega esta línea en el manifiesto
fuente
Si está utilizando la nueva biblioteca de soporte para 5.1 en Android Studio, puede usarla en su AppCompatActivity
salud.
fuente
La forma más sencilla y la mejor práctica como explica Google aquí :
1.Agregue un padre para la actividad de su hijo en
AndroidManifest.xml
:2.Active el botón de retroceso en su actividad infantil:
Funcionó para mí, espero que también funcione para ti.
fuente
Después de un tiempo de calidad que he encontrado, la opción de tema es el principal problema en mi código Y la siguiente es la forma correcta de mostrar la barra de herramientas para mí
En el archivo AndroidManifest, primero debe cambiar el estilo de su tema
luego, en su xml de actividad, debe llamar a su propia barra de herramientas como
Y luego esta barra de herramientas debería ser llamada en su archivo Java por
Y para la barra de herramientas que muestra U, debe verificar el nulo para evitar NullPointerException
Para la actividad en el hogar, agregue esto
O para su actividad deseada de regreso
fuente
Vi tantos complejos responder, así que este es mi código. Trabajando aquí. Puede lograrlo de dos formas.
1) Compatibilidad con Android Stardard
2) Utilice un icono personalizado
Si desea usar código en los comentarios, solo tiene que agregar este archivo en el dibujable, llamado ic_arrow_white_24dp.xml
Con este código.
¡Espero que ayude a algunas personas aquí!
fuente
La versión ligera sin usar
ActionBarActivity
que todavía tiene los mismos comportamientos aquí:Uso: Ponga
new ToolbarConfigurer(this, (Toolbar) findViewById(R.id.my_awesome_toolbar), true);
enonCreate
.fuente
Debe agregar el código mencionado a continuación en el archivo de manifiesto. Busque la actividad en la que desea agregar la función de flecha hacia atrás. Si encuentra el indicado, entonces está bien o cree la actividad.
Luego agregue las siguientes tres líneas de código en el medio.
Y no olvide agregar este fragmento de código en onCreate (); método de su actividad particular en el que necesita la flecha hacia atrás.
Así es como resolví el problema. Gracias.
fuente
Las otras respuestas no mencionan que también puede configurar esto en el XML de su
Toolbar
widget:app:navigationIcon="?attr/homeAsUpIndicator"
Por ejemplo:
fuente
Todo lo que necesitas hacer en 2020:
(considerando que quieres volver a MainActivity)
fuente
Si está utilizando una ActionBar, querrá leer esta documentación http://developer.android.com/reference/android/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean)
Luego, debe sobrescribir el método onOptionsItemSelected (MenuItem) y buscar el evento android.R.id.home para que aparezca. Entonces sabrá que el usuario ha hecho clic en el botón Atrás en la barra de acciones.
fuente
También se puede hacer sin código especificando una actividad principal en el manifiesto de la aplicación. Si desea un botón de retroceso en la Actividad B que irá a la Actividad A, simplemente agregue la Actividad A como padre de la Actividad B en el manifiesto.
fuente
Para kotlin:
fuente
Necesitaba mezclar algunas respuestas para obtener la respuesta correcta para mí porque mi aplicación tiene 3 actividades que pueden ir y venir en cualquier momento. Actividad1> Actividad2> Actividad3. Cuando estaba haciendo algo en mi actividad3, el botón de retroceso estaba retrocediendo correctamente a Actividad2. Sin embargo, desde Activity2, usando
finish()
, estaba retrocediendo a Activity3 y no a Activity1. Y estoy ampliando AppCompatActivity. Entonces, mi solución fue:en AndroidManifest.xml:
y finalmente, el botón de acción en mi menú (barra de acciones):
Usar
NavUtils.navigateUpFromSameTask(this);
funcionó para mí, en lugar definish()
.fuente
Simplemente comparto algo que me ayudó y puede ser útil para otros. Aunque la mayoría de las respuestas aquí son correctas, al usar el
getActionBar().setDisplayHomeAsUpEnabled(true);
, esto no funcionó para mí. El problema que tuve fue que estaba tratando de crear una segunda actividad manualmente, pero hay más detalles involucrados.Lo que realmente resolvió mi problema fue seguir el tutorial de desarrolladores de Android ( https://developer.android.com/training/basics/firstapp/starting-activity ) para crear una segunda actividad con las herramientas propias de Android Studio:
fuente
También puede simplemente poner
onBackPressed()
su oyente onClick. Esto hace que su botón actúe como los botones de "copia de seguridad" predeterminados en las aplicaciones de Android.fuente
fuente
Esto funciona para mí. Supongamos que hay dos actividades (Activityone, Activitytwo)
Dentro de Activitytwo use este código
En Activityone
Esto debe incluirse en la segunda actividad dentro del archivo de manifiesto
Y el resultado sería así
fuente
fuente
Esto me funciona getSupportActionBar (). SetDisplayHomeAsUpEnabled (false); ingrese la descripción de la imagen aquí
fuente