1

どの配列が任意のアクティビティでグローバルに使用でき、その配列が任意のアクティビティで必要になる可能性があるかを理解するために、いくつかのコードを投稿しています。

     Intent intent          =   getIntent();
     JSONArray beaconsArray     =   null;
     String jsonArray       =   intent.getStringExtra("activeBeaconsArray");
     try 
        {
            beaconsArray = new JSONArray(jsonArray);
            System.out.println(beaconsArray.toString(2));
        } 
     catch (JSONException e) { e.printStackTrace();}

必要な場所で任意のアクティビティを使用できるように、beaconsArrayを別のクラスの静的配列変数に格納する必要がありますか、それともこの配列を必要とするすべてのクラスのスーパークラスになる親クラスを作成する必要があります(beaconsArray)?
データベースから何度も取得したくない!

4

2 に答える 2

2

SharedPreference以下のこれらの種類のタスクには、保存するためのユーティリティメソッドを提供することをお勧めJSONArrayします。SharedPreference

public static void saveJSONArray(Context c, String prefName, String key, JSONArray array) {
    SharedPreferences settings = c.getSharedPreferences(prefName, 0);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString(JSONSharedPreferences.PREFIX+key, array.toString());
    editor.commit();
}

public static JSONArray loadJSONArray(Context c, String prefName, String key) throws JSONException {
    SharedPreferences settings = c.getSharedPreferences(prefName, 0);
    return new JSONArray(settings.getString(JSONSharedPreferences.PREFIX+key, ""));
}
于 2012-10-10T13:40:21.327 に答える
2

Applicationクラスを拡張するクラスを作成し、それにデータを追加します。追加したデータは、アプリが終了するまで保持されます。

良い例はここにあります、

Androidアプリケーションクラスを使用してデータを永続化する

http://www.helloandroid.com/tutorials/maintaining-global-application-state

または、Sharedperefernceに行くことができます。ただし、それらに追加されたデータは、上書きしない限り永続的であることを理解する必要があります。

于 2012-10-10T13:35:06.893 に答える