我有三个活动,我们称之为A,B和C.
我最初有活动A通过意图传递数据并调用活动B打开,显示从活动A传递的数据。
现在的问题是当我从活动B打开活动C,并使用我通过将活动B设置为清单中活动C的父级而设置的向上导航时,活动B中的活动A都不会显示任何数据如果我只是按一下按钮并调用finish();而不是使用向上导航,活动仍然包含活动A中的所有数据,就像我在活动B中所需的那样。
我认为这与使用导航的生命周期有关?我甚至尝试通过传递数据来使用活动B到C的意图,然后onResult让它返回到活动B,但似乎在单击向上导航时从不调用onActivityResult。有任何想法吗?也许我可以覆盖这个导航来调用finish(),就像我的按钮那样,仅此而已?
答案 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);
}