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

标签 java android android-actionbar android-toolbar android-menu

Back button on toolbar

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

最佳答案

先制作一个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);
    }
}

关于java - 如何在工具栏的后退箭头上显示和设置点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35810229/

相关文章:

java - 找到 Java 标准库

java - visualvm 中的堆转储浏览器?

java - 它不是抽象的,不会覆盖抽象方法

java - Android 平台的 Callkit 示例或示例以及 agora.io 调用服务

java - 从字节到大无符号整数和字符串的转换

android - java.lang.OutOfMemoryError : android. support.v4.app.BackStackState[] 长度为 1279544898 会溢出

android - 找不到 transform-api.jar (com.android.tools.build :transform-api:2. 0.0-deprecated-use-gradle-api)

android - 使用 setDisplayHomeAsUpEnabled(true) 时如何设置 Home-Icon 边距?

android - 在 Android 中的单个菜单项中实现三个操作

android - 汉堡菜单旋转到新 Activity 的箭头