私は、リストビューを含むOverviewActivityを持っています。アイテムが選択されると、DetailActivityに移動するためのインテントが作成され、intを渡します。Android:インテントで渡されたデータが、より深い階層から戻ってきたら消えます。
このintはプライベート変数に割り当てられ、データベースのクエリに使用されます。
DetailActivityコード:DetailActivityで
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);
...
}
私は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属性の値を保持しますか?
あなたのアクティビティコードを投稿してください。あなたは "アップ"ボタンの機能をオーバーライドしていますか? –
多分あなたはどこかでインテントを変更しています、あなたのアクティビティコードを投稿してください。 –