studio programar programacion para móviles libro edición desarrollo curso boton atras aplicaciones android navigation toolbar back-button android-homebutton

programar - programacion android pdf 2018



Barra de herramientas de Android con el botón de inicio y el de retroceso (3)

¿Es posible mostrar el ícono de inicio y el ícono de retroceso en la barra de herramientas? 1) ¿Es posible cambiar el orden de visualización del ícono del botón Atrás y el ícono de inicio? Actualmente muestra el botón de flecha primero y luego el logotipo (botón de inicio)

2) El segundo requisito es borrar la pila de actividades al hacer clic en el icono de inicio y volver a la pantalla anterior en caso de que el botón de retroceso.

Tengo el siguiente código que mostrará una flecha hacia atrás e ícono de inicio que está configurado como logotipo. ¿Es posible manejar los eventos de clic en ambos iconos?

Toolbar toolbar = (Toolbar)findByViewID(R.id.toolbar); toolbar.setNavigationIcon(R.drwable.btn_back); setSuppportActionBar(toolbar); getSupportActionBar().setLogo(R.drawable.home_icon); getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Puedo manejar el ícono de hacer clic en la flecha manejándolo en el método OnOptionsITemSelected. ¿Hay alguna manera de manejar el ícono del logotipo? Mi idea es usar el botón de inicio clic para borrar la pila de actividades y usar el botón Atrás para volver a la pantalla anterior.

Lo intenté con

toolbar.setNavigationOnClickListener()

pero no tiene efecto sobre el clic del botón de retroceso.

El manejo de android.R.id.home funciona cuando se maneja en

onOptionsItemSelected()


prueba con esto

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { if (item.getItemId() == android.R.id.home) { getActivity().finish(); } return true; } });


  1. Diseñe nuestro diseño personalizado como un "toolbar_content.xml" por separado e incluya este diseño dentro de la etiqueta de la barra de herramientas en su "main_layout.xml".
  2. Escriba click listeners para sus elementos en "toolbar_content.xml" en su actividad base para que los oyentes estén disponibles a través de la aplicación.

Para navegar hacia atrás Esto funcionó para mí.

@Override public boolean onOptionsItemSelected(MenuItem menuItem) { switch (menuItem.getItemId()) { case android.R.id.home: Intent homeIntent = new Intent(this, HomeActivity.class); homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); } return (super.onOptionsItemSelected(menuItem)); }