如何在工具栏上的后退箭头上显示和设置点击事件

工具栏上的后退按钮

我如何设置在Android工具栏后退箭头,并应用点击监听器?

Solutions Collecting From Web of "如何在工具栏上的后退箭头上显示和设置点击事件"

首先制作一个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" /> 

然后像这样将其包含在activity_main.xml

 <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> 

然后在你的MainActivity.java文件中,把这个代码:

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

要在背面添加监听器,请使用以下方法:

 @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); } } 

如果你想知道什么时候点击家是一个AppCompatActivity,那么你应该这样尝试:使用此代码:

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

像往常一样监听android.R.id.home上的点击事件:

 @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); } 

如果您正在使用Android的默认后退button

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

然后重写onOptionsItemSelected就好

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: //do whatever 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 } }); 

添加这个

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

并在onOptionsItemSelected添加这个

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

检查这个

在工具栏Android上显示后退箭头

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