android - poner - instalar barra de google
Cómo atrapar el icono de navegación, haga clic en la barra de herramientas del fragmento? (3)
Tengo un fragmento de diálogo en el que tengo una barra de herramientas en el diseño. Quiero hacer que el botón Atrás (ícono de navegación) funcione en la barra de herramientas y salir del fragmento al hacer clic. Pero no puedo ver el evento click en el ícono de navegación de la barra de herramientas en el fragmento (diálogo).
Así es como estoy obteniendo la barra de herramientas:
toolbar = (Toolbar) rootView.findViewById(R.id.toolbar);
toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
toolbar.setTitle(itemType);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
Aquí está mi archivo de diseño para el fragmento de diálogo:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/panel_cyan"
android:id="@+id/rootLayout"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@color/color_primary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listViewItems"
/>
</RelativeLayout>
** Aquí está lo que se intentó hasta ahora, pero falló **
Elemento de opciones haga clic en id R.id.home
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id){
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
setNavigationOnClick () en la barra de herramientas:
toolbar.setNavigationOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Back clicked!", Toast.LENGTH_SHORT).show();
}
});
Esto funciona para mí
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"your icon was clicked",Toast.LENGTH_SHORT).show();
}
});
agregue el bloque de código toolbar.setNavigationOnClickListener
después de setSupportActionBar(toolbar)
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// do what ever you want here
}
return true;
}
});