2012-03-10 9 views
3

ホーム画面にプッシュされるたびに編集テキストフィールドを追加するボタンがあります(ベストプラクティスでは20に制限されています)。それは基本的に小さな予算のアプリです。ユーザーがフィールドの1つにXの金額を記入して欲しい。その後、彼らが準備ができたら、別の時間にアプリに戻ってきて、EditTextが作成されていても値がまだ残っています。私は値を保持するためにSharedPerfrencesを利用する方法を知っています。私は、しかし、ユーザーが戻ったときに、その新しく作成されたEditTextフィールドを保持する方法を知っていません。(ユーザー作成の)ダイナミックレイアウトをAndroidに保存するにはどうすればよいですか?

私はすぐに拡張し、各EditTextフィールドに関連付けられたボタンと日付ピッカーを持っていますので、すぐにボタンをクリックすると、1つではなく3つのオブジェクトが作成されます。しかし、私は最初に働きたいと思って、後で他の人にその原則を適用します。助言がありますか?

答えて

1

サウンドは、SQLiteデータベースに適しています。

たとえば、SQLiteデータベースを使用して、ユーザーがアプリケーション内に配置したウィジェットの座標とタイプを保持して呼び出すことができます。

実際のEditTextViewオブジェクト自体を保存してリコールしようとは思わないことに注意してください。データベースでは、格納する必要がある種類の情報に適した独自のテーブル形式を考案する必要があります。一連のEditTextフィールドの状態を保持するだけでよい場合は、各行に文字列値を含む1つの列を持つテーブルを持つだけの簡単な方法です。そのデータベースからUIを再構築するには、EditTextの新しいインスタンスをループして作成し、それぞれのテキストをテーブルから設定します。

+0

よろしくお願いいたします。私は間違った角度でこれを取っていたようです。私はこれを単純化してSharedPreferencesをSQLiteで使うのが好きですが、少なくともあなたは正しい軌道に乗りました!私は他の人がこれをどうやって試みるのか見てみたい。 – KickingLettuce

+0

'SharedPreferences'は簡単に始めて何かを稼働させることができます。しかし、SharedPreferencesは実際には少量の特定のkey = valueデータを格納するために使用されます。配列データにはまったく適していません。あなたが 'EditText'を1つだけ持っていれば' mFieldValue'のような単一のprefsキーを持つことができますが、多くの 'EditText'ではmFieldValue1、mFieldValue2などのキーを使うか、 's 'の値を一つの値の文字列に変換します。いずれにしても、乱雑で丸い穴に四角いペグを置くのと同じように、SQLiteデータベースが入ってくるところです。 – Trevor

+0

あなたの推薦に基づいてここでいくつかの調査をしていますが、私はSQLiteが行く方法だと思っています!ご協力いただきありがとうございます。 – KickingLettuce

0

あなたはAndroid Parcelableインターフェイスを使用する必要があります。実装方法はthisを参照してください。this questionを参照してください。これは良い答えです。

関連する問題