11

動的に作成されたEditTextsをレイアウトに追加しています(onClickボタンメソッド)。画面を回転すると、追加された編集テキストが消えます。それらをバンドルに追加してonSavedInstanceStateメソッドに入れるにはどうすればよいですか?または、これを行う別の方法はありますか?テキストを保存できることはわかっていますが、テキストを回転させたときに画面レイアウトを維持する方法はありますか?ユーザーがボタンを押して5つのEditTextを追加した場合(何も入力しなくても)、画面を回転させたときにこのレイアウトを保存する必要があります(基本的にアプリをダミープルーフする必要があります:))。

前もって感謝します!

4

4 に答える 4

12

ビューはパーセル化/シリアル化できないため、バンドルにビューを追加することはできません。バンドルに保存できる、保存する必要があるのは、アクティビティの現在の状態だけです。

動的に作成されたビューを追跡するリストデータ構造またはカウンター変数を維持できます。EditTextsの文字列値も保存します。onCreateでは、ビューとその状態を再作成するために、その情報を解釈する必要があります。

于 2012-06-25T17:02:52.837 に答える
2

ビューを保存することはできません。バンドルは単なるペアの名前と値です。もちろん、テキストを保存してから再度レンダリングすることもできます。方法はあなたが言っただけです。

onsaveInsatnceState(bundle save)テキストをsave.putString('text1'、'bla bla')として保存します。もちろん、すべての編集テキストを保存するにはループが必要です。

次にoncreated(バンドル保存)で

save.getString('text1')で追加したものを取得できます

于 2012-06-25T17:01:32.497 に答える
0

ビュー自体は、保存する必要のある情報を表すものではありません。代わりに、座標、幅、高さ、値などを保存する必要があります。

于 2012-06-25T16:57:25.320 に答える
0

ビューデータをクラスまたは配列リストに保存できます。oncreate関数でsaveinstance状態からデータをフェッチするよりも、フラグメントアクティビティが再開するとき。

この関数setRetainInstance(true)を使用します。モノ関数を使用した後、フラグメントアクティビティは破棄されません。

于 2015-05-26T10:38:13.067 に答える