2

Web サイトのショッピング カートのように、いくつかのアクティビティ間でデータを利用できるようにしたいと考えています。

このデータは、おそらくリスト、マップなどの文字列のコレクションになるでしょう。各アイテムには、ID、数量、タイプ、およびテキスト ノートが関連付けられている必要があります (最後の 1 つについてはまだわかりません)。

ポイントは、セッション終了後に永続化する必要がないことです。このデータは、セッション全体で何度も完全に削除および再作成されます。

問題は 、データベースである SharedPreferences を使用するのが最善の選択であるかということです。

ありがとう!

4

7 に答える 7

3

さらに良い選択は、ファクトリ オブジェクトを介して配置されたシングルトン Java コレクション ( map または list ) です。カートをそこに保管するだけで、データベースや設定をまったく気にする必要はありません

設定を使用する場合は、私の小さなデータバインディング ライブラリをお勧めします。

https://github.com/ko5tik/andject

于 2012-04-12T20:12:45.703 に答える
1

Gson (by Google) を使用して、クラス オブジェクトを含むアクティビティ間のデータを送受信できます。


送信: (FirstActivity)

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
Gson gson = new Gson();
intent.putExtra("CustomClassObject", gson.toJson(object));
startActivity(intent);

受け取る: (SecondActivity)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_second);
    Bundle extras = getIntent().getExtras();
    if (extras != null) 
    {
        Gson gson = new Gson();
        CustomClass object = gson.fromJson(extras.getString("CustomClassObject"), CustomClass.class);
    }
    //...
}
于 2015-04-23T10:29:16.917 に答える
1

最も簡単な方法は、パブリック静的変数が宣言されたクラスを使用し、任意のアクティビティからそれらを設定し、静的参照、つまり MyContantsClass.StaticVar1 のように呼び出すだけで、他のアクティビティに保存された値を取得することです

class MySessionVars
 {
      public static int MyVar1;
 }

最初のアクティビティで

{
   MySessionVars.NyVar1=10;
}

およびその他のアクティビティから

{
    Var = MySessionVars.NyVar1;
}

これは最も簡単な方法で、アプリが閉じられるまで変数を保持します

于 2012-04-12T21:17:39.660 に答える
0

グローバル データの作成や sharedpreference での値の格納について話す人もいるかもしれませんが、私の経験によると、変数または配列リストを public static として宣言した別のクラスを作成し、クラス名を参照するだけでそれらをプロジェクト全体で使用するのが最も簡単な方法です。変数名。 class global

{
   public static arrayList<String> my;
}

あなたのアクティビティglobal.myのいずれかで

これは私がこれまでに見つけた最も簡単な方法です!

于 2015-01-27T10:04:19.473 に答える