使用支持操作栏

时间:2018-04-14 16:41:40

标签: android

当用户单击支持操作栏中的向上导航按钮时,我试图将可序列化类的实例传递给父活动。我遇到麻烦的活动是从startActivityForResult()开始的,所以我可以通过onBackPressed()方法成功传递实例,就像这样覆盖了

@Override
public void onBackPressed() {
Intent intent = new Intent();

    Bundle bundle = new Bundle();
    bundle.putSerializable("world_key", world);
    intent.putExtras(bundle);

    setResult(RESULT_OK, intent);
    finish();
}

但是当用户在我的活动中点击支持操作栏上的向上导航时尝试运行相同的代码时,我迷路了

为了进一步明确我目前正在尝试的内容,我尝试了以下内容,但没有效果

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.toolbar:
            Intent intent = new Intent();

            Bundle bundle = new Bundle();
            bundle.putSerializable("world_key", world);
            intent.putExtras(bundle);

            setResult(RESULT_OK, intent);
            finish();
    }
    return super.onOptionsItemSelected(item);
}

非常感谢洞察力

1 个答案:

答案 0 :(得分:0)

您需要使用android.R.id.home,如下所示:

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