0

フラグメントでローダーを取得し、バックグラウンドでデータをロードします。データが読み込まれた後、edittexts にその情報を入力します。問題は、ユーザーが edittexts で何かを変更して画面を回転させると、onLoadFinished が再度呼び出され、edittexts が読み込まれた情報に置き換えられることです。データが既にロードされている場合は、ヘルプ変数を追加することでこれを解決します..しかし、このフラグメントを他のフラグメントに置き換え、画面を前後に回転させて戻るボタンを押すと、編集テキストが空になります。Fragment は、インスタンス true を保持するように設定されています。フラグメントがバックスタックにあると、ビューの状態が失われたようです。これに詳しい人はいますか?

4

1 に答える 1

0

保持状態を使用しないでください。ただし、バンドルを使用して保存を保存し、アクティビティを再作成するときに復元するのが適切な方法です (onCreate バンドルは新しいものではありません)。

非常に具体的な例が含まれているリンクを確認してください。

アンドロイド開発ガイドから:

再起動を適切に処理するには、アクティビティが通常のアクティビティ ライフサイクルを通じて以前の状態を復元することが重要です。このライフサイクルでは、Android がアクティビティを破棄する前に onSaveInstanceState() を呼び出して、アプリケーションの状態に関するデータを保存できるようにします。その後、onCreate() または onRestoreInstanceState() 中に状態を復元できます。

Android ローテーションの変更

于 2013-05-20T08:46:59.503 に答える