Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: SoCu en 14 de Enero 2018, 19:01
-
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:
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
-
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
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
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Añadir visualización del botón atrás:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
Añadir un clickListener:
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(),MainActivity.class));
}
});
Forma 3 variante de la 2
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
Saludos
-
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.