Android - 标题栏中的后退按钮

新手上路,请多包涵

在许多应用程序(日历、云端硬盘、Play 商店)中,当您点击按钮并输入新活动时,标题栏中的图标会变成后退按钮,但对于我正在制作的应用程序,它不会这样做。如何使该图标带您回到上一个屏幕?

原文由 Drew 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 653
2 个回答

在标题栏中创建后退按钮有两个简单的步骤:

首先,在您希望在其标题栏中添加后退按钮的 Activity 中使用以下代码使应用程序图标可点击:

 ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

添加上述代码后,您将看到应用程序图标左侧出现一个后退箭头。

在此处输入图像描述

其次,在完成上述操作后,您仍然需要创建能够利用点击事件的代码。为此,请注意,当您实际单击应用程序图标时,会调用 onOptionsItemSelected 方法。因此,要返回上一个活动,请将该方法添加到您的活动中并在其中放入 Intent 代码,这将使您返回上一个活动。例如,假设您尝试 返回 的活动名为 MyActivity 。要回到它,编写方法如下:

 public boolean onOptionsItemSelected(MenuItem item){
    Intent myIntent = new Intent(getApplicationContext(), MyActivity.class);
    startActivityForResult(myIntent, 0);
    return true;
}

而已!

(在 Android 开发者 API 中,它建议弄乱清单并添加 android:parentActivityName 之类的东西。但这似乎对我不起作用。上面更简单,更可靠。)

 <meta-data
      android:name="android.support.PARENT_ACTIVITY"
      android:value=".MainActivity" />

在你的活动中

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

原文由 Luke 发布,翻译遵循 CC BY-SA 4.0 许可协议

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.YourxmlFileName);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

  public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id==android.R.id.home) {
            finish();
            return true;
        }
        return false;
    }

原文由 S.Adikaram 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题