向上导航无法按预期工作

时间:2014-03-26 21:53:30

标签: android android-intent android-activity

我有三个活动,我们称之为A,B和C.

我最初有活动A通过意图传递数据并调用活动B打开,显示从活动A传递的数据。

现在的问题是当我从活动B打开活动C,并使用我通过将活动B设置为清单中活动C的父级而设置的向上导航时,活动B中的活动A都不会显示任何数据如果我只是按一下按钮并调用finish();而不是使用向上导航,活动仍然包含活动A中的所有数据,就像我在活动B中所需的那样。

我认为这与使用导航的生命周期有关?我甚至尝试通过传递数据来使用活动B到C的意图,然后onResult让它返回到活动B,但似乎在单击向上导航时从不调用onActivityResult。有任何想法吗?也许我可以覆盖这个导航来调用finish(),就像我的按钮那样,仅此而已?

1 个答案:

答案 0 :(得分:0)

假设您已在Manifest中定义了父活动,请确保覆盖以下方法:

@Override
public void onCreate(Bundle savedInstanceState) {
    // You code here
    getActionBar().setDisplayHomeAsUpEnabled(true);
    // or getSupportActionBar().setDisplayHomeAsUpEnabled(true) if using support actionbar, i.e., for targets < 3.0;
}

现在,您可以使用ID android.R.id.home捕捉“向上”按钮的操作。

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