我有一个包含列表视图的 OverviewActivity。当一个项目被选中时,会创建一个移动到 DetailActivity 的意图,并且我会传递一个 int 值。
这个 int 被分配给一个私有变量,用于查询数据库。
详细活动代码:
private int mIssueId;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_issue_detail);
mIssueId = getIntent().getIntExtra(IssueOverviewFragment.INTENT_ISSUE_ID, -1);
...
}
在 DetailActivity 中,我可以转到 GraphActivity。但是当我在 GraphActivity 中按下 upButton 时,应用程序崩溃,因为 DetailActivity 中的变量变为 -1(因此无法正确查询数据库)。
层次结构是:OverviewActivity -> DetailActivity -> GraphActivity
GraphActivity 代码:
protected void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_graph );
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
...
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_detail, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_logout: {
Utility.redirectToLogin(this);
break;
}
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
如何在 DetailActivity 中保留我的 mIssueId 属性的值?