una tareas herramientas crear como barra java android android-actionbar android-toolbar android-menu

java - tareas - Cómo mostrar y establecer un evento de clic en la flecha Atrás en la barra de herramientas



barra de tareas en java (6)

¿Cómo puedo volver a configurar la flecha en la barra de herramientas de Android y también aplicar el detector de clics?


Agrega esto

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true);

y en onOptionsItemSelected agregue esto

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; default: return super.onOptionsItemSelected(item); } }

Mira esto

Mostrar la flecha hacia atrás en la barra de herramientas de Android

http://developer.android.com/intl/es/training/implementing-navigation/ancestral.html


Si desea saber cuándo se hace clic en su casa es una AppCompatActivity, entonces debería intentarlo de la siguiente manera: use este código:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true);

Escuche los eventos de clics en android.R.id.home como de costumbre:

@Override public boolean onOptionsItemSelected(MenuItem menuItem) { if (menuItem.getItemId() == android.R.id.home) { Intent intent = new Intent(CurrentActivity.this, MainActivity.class); startActivity(intent); finish(); } return super.onOptionsItemSelected(menuItem); }


Si está utilizando el botón de retroceso predeterminado para Android, use

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Luego anula el onOptionsItemSelected como

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: //do whatever return true; default: return super.onOptionsItemSelected(item); } }


Use la actividad getSupportActionBar () en la que desea mostrar el ícono Atrás

En OtherActivity.class

public class OtherActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.other_activity); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); } } public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()) { case android.R.id.home: finish(); return true; } return super.onOptionsItemSelected(item); } public boolean onCreateOptionsMenu(Menu menu) { return true; }

}

Esto agregará un evento de escucha.

Complete el ejemplo aquí http://www.freakyjolly.com/how-to-add-back-arrow-in-android-activity/


Primero haz una toolbar.xml

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:local="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="@color/colorPrimary" local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" local:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

Luego inclúyelo en activity_main.xml esta manera:

<LinearLayout android:id="@+id/container_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> </LinearLayout>

Luego, en su archivo MainActivity.java , ponga este código:

mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setTitle("MyTitle");

Para agregar un oyente en la parte posterior presione, use el siguiente método:

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // todo: goto back activity from here Intent intent = new Intent(CurrentActivity.this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); return true; default: return super.onOptionsItemSelected(item); } }


Toolbar mToolbar= (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); mToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // perform whatever you want on back arrow click } });

// con expresión lamda

toolbar.setNavigationOnClickListener(view -> onBackPressed());