Autor Tema: activar boton flecha atras en menu de Android Studio (menú ToolBar)  (Leído 14606 veces)

SoCu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 36
    • Ver Perfil
Hola, no sé si alguien me puede ayudar con este problema que tengo, he conseguido un proyecto para crear una aplicación para uso personal, y necesito hacer funciona la flecha que hay en el menú Toolbar, he visto muchos códigos y videos que dicen cómo se activa y cómo funciona para volver a la actividad anterior, pero todos muestran un ejemplo simple, quiero decir con dos clases activity,

No sé si es aquí donde yo tengo el problema, porque como clases Activity solo tengo una, las demás clases están como Fragment

El menú no mostraba la flecha, logre ponerla, pero cuando la pulsaba la aplicación se cerraba, y lo mismo con el botón físico del móvil, al pulsar para ir atrás también cerraba la apelación.

Logre poner un código para que al pulsar la flecha atrás, mostrase un mensaje de advertencia, pero cuando me pulso a otros menús y volver atrás, muestra ese mensaje, pero no vuelva a la actividad anterior.

El proyecto del menú que estoy utilizando es este:
Código: [Seleccionar]
https://android-arsenal.com/details/1/5508
Me puede decir alguien que código tendría que poner para que funcionase la flecha atrás, y donde porque ya no sé si en la clase Fragments o en el  XML hay que poner algo.


Gracias anticipadas
« Última modificación: 21 de Enero 2018, 21:10 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:activar boton atras en menu de Android Studio
« Respuesta #1 en: 21 de Enero 2018, 21:09 »
Hola, no estoy programando Android hace tiempo por lo que no creo poder ayudarte. Por si te sirve de algo te dejo esta referencia que he visto:

Forma 1
Modificar R.drawable.nombre para poner un botón específico de ir hacia atrás
Código: [Seleccionar]
toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);

        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(),MainActivity.class));
            }
        });

Forma 2
Inicializar la toolbar
Código: [Seleccionar]
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

Añadir visualización del botón atrás:
Código: [Seleccionar]
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

Añadir un clickListener:
Código: [Seleccionar]
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new         Intent(getApplicationContext(),MainActivity.class));
    }
});

Forma 3 variante de la 2

Código: [Seleccionar]
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

Saludos

SoCu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 36
    • Ver Perfil
Re:activar boton flecha atras en menu de Android Studio (menú ToolBar)
« Respuesta #2 en: 21 de Enero 2018, 21:42 »
Muchas gracias Alex, ya casi lo tengo, la flecha funciona, pero no como deseo,

Si tengo en el menu cuatro opciones/menus, y estoy posicionado en el ultimo menu, al pulsar la flecha atras vuelve al menu anterior que seria el 3 y luego al 2 y al 1, y no tendria que hacer eso, si no que tendria que volver a la ventana o actividad anterior, sea la que sea.

Salu2.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".