したがって、質問が重複していることはわかっていますが、これらの回答で解決策が見つかりませんでした。MainActivity と GameDetailActivity があります。MainActivity GameDetailActivity の階層的な親。マニフェスト ファイルの宣言は次のとおりです。
<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme2"
android:noHistory="false"
>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".GameDetailActivity"
android:theme="@style/AppTheme2"
android:parentActivityName=".MainActivity"
android:noHistory="false"
>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.exam.example.MainActivity"/>
</activity>
ここで AppTheme2 宣言:
<style name="AppTheme2" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
ここで GameDetailActivity のロジックに戻ります。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent upIntent = NavUtils.getParentActivityIntent(this);
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
TaskStackBuilder.create(this)
.addNextIntentWithParentStack(upIntent)
.startActivities();
} else {
NavUtils.navigateUpTo(this, upIntent);
}
return true;
default:break;
}
return super.onOptionsItemSelected(item);
}
そして、GameDetailActivity でホームアップ (戻る "<-") ボタンを押すと、MainActivity で常に savedInstanceState が null になっています。MainActivity で保存されたデータが失われる理由がわかりません。
編集
ここで GameDetailActivity コードを開始します。
Intent i = new Intent(getActivity(), GameDetailActivity.class);
i.putExtra("game", clickedGame);
startActivity(i);
これを修正する方法を知っている人はいますか?
前もって感謝します