android - 如何让 'back-arrow'在工具栏中工作?

标签 android

我有定义我的工具栏的 xml 代码的以下部分:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:columnCount="5"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:useDefaultMargins="true"
    android:alignmentMode="alignBounds"
    android:columnOrderPreserved="false">

    <android.support.v7.widget.Toolbar android:id="@+id/toolbar_setting"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"/>

    ... // other code here

SettingsActivity(派生自AppCompatActivity)中的代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings);

    // Set toolbar, allow going back.
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_setting);
    toolbar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setTitle("Settings");

当编译和运行代码时,我看到一个工具栏如下:

enter image description here

但是单击左箭头并不能使我返回到上一个菜单。我在这里缺少什么?

最佳答案

您可以通过 android.R.id.home 访问那个小箭头:

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

    return(super.onOptionsItemSelected(item));
}

@Override
public void onBackPressed() {
    super.onBackPressed();
}

如果你尝试这段代码,当你点击箭头时,它会像按下后退按钮一样。

关于android - 如何让 'back-arrow'在工具栏中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37553098/

相关文章:

android - 附近的 API 没有收到任何消息

android - 再次连接到现有服务的主要 Activity

android - Espresso Intent 测试失败

android - 如何在gradle中声明一个变量?

android - 在 View 级别抑制 lint 警告

java - 使用项目旋转 Android GridView

android - 如何在 Android 上使用 MediaPlayer 流式传输经过身份验证的内容

android - 以xamarin形式在 ListView 内随机触发的条目控制焦点取消焦点事件

java - 以编程方式在Android上绘制虚线

java - R.java 文件从未生成