如何保存ArrayList <list>

时间:2016-04-07 23:54:01

标签: java android arrays list sharedpreferences

我有包含ArrayLists的ab ArrayList,它们又包含列表。字符串之一和视图之一。我怎么能将这个根列表保存到共享首选项或其他任何一个?以下是概述:

           MotherList
                | 
                .
          DaughterLists
            /       \
           /         \
    ListOfViews  ListOfStrings
                .
                .

3 个答案:

答案 0 :(得分:0)

以下是有关在SharedPreferences中放置数据的所有方法:   putBoolean(String key,boolean v)   putInt(String k,int v)   putFloat(String k,float v)   putLong(String k,long v)   putString(String k,String v)   putStringSet(String k,Set v)

但是有一个名为ASimpleCache的开源框架可以解决它:

保存:    ACache acache = ACache.get(Context);    acache.put(“钥匙”,你的根目录的列表); 得到:    acache.getAsObject( “钥匙”);

答案 1 :(得分:0)

使用共享偏好设置存储Arraylist

SharedPreferences prefs=this.getSharedPreferences("yourPrefsKey",Context.MODE_PRIVATE);
Editor edit=prefs.edit();

Set<String> set = new HashSet<String>();
set.addAll(your Arraylist Name);
edit.putStringSet("yourKey", set);
edit.commit();

从共享偏好设置中检索Arraylist

Set<String> set = prefs.getStringSet("yourKey", null);
List<String> sample=new ArrayList<String>(set);

答案 2 :(得分:0)

您好我建议您使用GSON来序列化和反序列化您的列表。通过这种方式,您可以轻松地将其保存在SharedPreferences上。

  1. 首先借助 GSON Converter

    将您的ArrayList<List>对象转换为 JSON
    String myArrayListAsJSON = new Gson().toJson(myArrayList); // you will pass your arraylist variable to toJson() method
    
  2. 将{strong> JSON对象保存为String

    上的SharedPreference
    SharedPreferences prefs=this.getSharedPreferences("PREF_KEY_FOR_YOUR_APP",Context.MODE_PRIVATE);
    Editor edit=prefs.edit();
    
    edit.putString("myListKey", myArrayListAsJSON); // we will put our list hat serialized with GSON here
    edit.commit();
    
  3. 在申请的任何地点/时间重复使用您的清单。您只需要反序列化您在Shared Preferences

    上保存的JSON
    SharedPreferences prefs=this.getSharedPreferences("PREF_KEY_FOR_YOUR_APP",Context.MODE_PRIVATE);
    String myListAsString = prefs.getString("myListKey","default_value");
    ArrayList<List> yourObject = new Gson().fromJson(myListAsString, YOUR_MODEL.class);
    
  4.   

    Gson是一个Java库,可用于将Java对象转换为JSON表示。它还可用于将JSON字符串转换为等效的Java对象。 Gson可以处理任意Java对象,包括你没有源代码的预先存在的对象。

    您可以在应用中添加此行来使用 GSON

    compile 'com.google.code.gson:gson:2.6.2'
    

    您可以在GSON Github Page

    上找到更多详细信息和示例