:私はタブ付きのAndroidアプリを持っていると私はこれらの(確かに奇妙な)の手順に従う時はいつでも私はTabOneのコンテンツを失っています:へのAndroidアプリの問題をタブを切り替えるときの状態を失い、オリエンテーション
- 変更を別のタブ。
- 向きを横向きに切り替えます。
- 向きをポートレートに戻します。
- TabOneに戻ります。
アンドロイドアプリ概要:私たちはTabOne、TabTwo、およびTabThreeそれらを呼び出すよ、google's TabLayout
tutorialを使用して構築された3つのタブでかなり最低限のAndroidアプリを持っています。 TabOneだけがコンテンツを持っています:単純なEditText
ビューと、を使用すると、TabOne本体にテキストを追加できます。これは、ArrayAdapter
のカスタムを使用して調整されていますが、これは奇妙な動作と関係している可能性があります。
TabOneのままで向きを変えても、これは発生しません。これは私のTabOneActivity
クラスの私のデータリストを保存するためにOnSaveInstanceState()
とOnRestoreInstanceState()
を実装しているからです。
私はそれが奇妙ではないと思います。 Androidは、リソースが少ないなどの理由でメモリを解放する必要があると考えられる場合、このようにアクティビティを管理できます。アクティビティがフォアグラウンドのアクティビティでない場合(タブコンテンツとしてアクティビティを使用していると仮定します)、Androidはそれを破棄して後で再び復元できます。向きの変更にも同じです。あなたの状態を保存する必要がある場合は、私の推奨はOnSaveInstanceStateとOnRestoreInstanceStateを実装することです。 –
イエス様に感謝しますが、私は問題の活動にこれらの方法を両方持っています。主な活動にも保存すべき追加の状態がありますか? – plowman
タブ内のアクティビティからタブ内のビューに切り替えることを検討してください。これは、この種のものをかなり簡単にするためです。たとえば、保存するコンテキストは1つだけで、タブごとに1つではなく、ホスティングアクティビティで1つです。 – CommonsWare