Gmail と TED アプリからの私の観察から、アップ ナビゲーションの動作は同じ状態 (スクロール位置) で親に移動し、Google がドキュメントで言っているのとは異なります。親インテントを作成して開始するようなアップ ナビゲーションを実装します。
Androidサンプルコードからコードを実装すると、すべての状態がなくなりました(以前に設定したすべての追加パラメーターとスクロール位置)。これの適切な方法は何ですか? Androidドキュメントで何も見つかりません。
以下はコードです:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent upIntent = new Intent(this, MyParentActivity.class);
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
// This activity is not part of the application's task, so create a new task
// with a synthesized back stack.
TaskStackBuilder.from(this)
.addNextIntent(new Intent(this, MyGreatGrandParentActivity.class))
.addNextIntent(new Intent(this, MyGrandParentActivity.class))
.addNextIntent(upIntent)
.startActivities();
finish();
} else {
// This activity is part of the application's task, so simply
// navigate up to the hierarchical parent activity.
NavUtils.navigateUpTo(this, upIntent);
}
return true;
}
return super.onOptionsItemSelected(item);
}
私の場合、AB と C という 3 つのアクティビティを取得しました。ユーザーが A から BI に移動すると、いくつかのエクストラが配置されonCreate
、BI はそのエクストラを使用してデータベースからデータをクエリして行を入力し、C から戻るとすべてのエクストラがなくなり、アクティビティB 何も表示されません。