Java 如何保存ArrayList<;列表>;

Java 如何保存ArrayList<;列表>;,java,android,arrays,list,sharedpreferences,Java,Android,Arrays,List,Sharedpreferences,我有一个ab ArrayList,它包含ArrayList,它们同样包含列表。一个字符串和一个视图。如何将此根列表保存到共享首选项或任何其他was中?以下是概述: MotherList | . DaughterLists / \ / \ ListOfViews ListOfStrings

我有一个ab ArrayList,它包含ArrayList,它们同样包含列表。一个字符串和一个视图。如何将此根列表保存到共享首选项或任何其他was中?以下是概述:

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

以下是有关将数据放入SharedReferences的所有方法: putBoolean(字符串键,布尔值v) putInt(字符串k,int v) putFloat(字符串k,浮点v) putLong(字符串k,长v) putString(字符串k、字符串v) putStringSet(字符串k,集合v)

但有一个开源框架称为ASimpleCache,可以解决这个问题:

保存: ACache-ACache=ACache.get(上下文); acache.put(“key”,你的根目录); 获取:
acache.GetaObject(“键”)

以下是有关将数据放入SharedReference的所有方法: putBoolean(字符串键,布尔值v) putInt(字符串k,int v) putFloat(字符串k,浮点v) putLong(字符串k,长v) putString(字符串k、字符串v) putStringSet(字符串k,集合v)

但有一个开源框架称为ASimpleCache,可以解决这个问题:

保存: ACache-ACache=ACache.get(上下文); acache.put(“key”,你的根目录); 获取:
acache.GetaObject(“键”)

使用共享首选项存储阵列列表

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();
Set<String> set = prefs.getStringSet("yourKey", null);
List<String> sample=new ArrayList<String>(set);
SharedReferences prefs=this.getSharedReferences(“yourpresky”,Context.MODE\u PRIVATE);
Editor edit=prefs.edit();
Set=newhashset();
set.addAll(您的Arraylist名称);
edit.putStringSet(“yourKey”,set);
edit.commit();
从共享首选项检索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();
Set<String> set = prefs.getStringSet("yourKey", null);
List<String> sample=new ArrayList<String>(set);
Set=prefs.getStringSet(“yourKey”,null);
列表样本=新阵列列表(集合);

使用共享首选项存储阵列列表

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();
Set<String> set = prefs.getStringSet("yourKey", null);
List<String> sample=new ArrayList<String>(set);
SharedReferences prefs=this.getSharedReferences(“yourpresky”,Context.MODE\u PRIVATE);
Editor edit=prefs.edit();
Set=newhashset();
set.addAll(您的Arraylist名称);
edit.putStringSet(“yourKey”,set);
edit.commit();
从共享首选项检索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();
Set<String> set = prefs.getStringSet("yourKey", null);
List<String> sample=new ArrayList<String>(set);
Set=prefs.getStringSet(“yourKey”,null);
列表样本=新阵列列表(集合);

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

  • 首先,在GSON转换器的帮助下,将
    ArrayList
    对象转换为JSON

    String myArrayListAsJSON = new Gson().toJson(myArrayList); // you will pass your arraylist variable to toJson() method
    
  • 将您的JSON对象另存为
    字符串
    到您的
    共享参考

    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();
    
  • 在申请的任何地点/时间重复使用您的列表。您只需对保存在
    共享首选项中的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);
    

    您可以在

    上找到更多详细信息和示例您好,我建议您使用GSON对列表进行序列化和反序列化。通过这种方式,您可以轻松地将其保存在
    SharedReferences

  • 首先,在GSON转换器的帮助下,将
    ArrayList
    对象转换为JSON

    String myArrayListAsJSON = new Gson().toJson(myArrayList); // you will pass your arraylist variable to toJson() method
    
  • 将您的JSON对象另存为
    字符串
    到您的
    共享参考

    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();
    
  • 在申请的任何地点/时间重复使用您的列表。您只需对保存在
    共享首选项中的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);
    

    您可以在

    上找到更多详细信息和示例这是安卓问题吗?为什么要在
    共享参考
    中保存
    android.view.view
    ?我不明白这是什么意思。你为什么还要保留一个视图列表?这听起来像是一个recyclerview场景…可能是and的副本?将对象转换为字符串并保存在共享首选项中这是一个android问题吗?为什么要将
    android.view.view
    保存在
    SharedReferences
    中?我不明白这是什么意思。你为什么还要保留一个视图列表?这听起来像是一个recyclerview场景…可能是和的副本?将对象转换为字符串并保存在共享首选项中您可以将其转换为JSON字符串并将其存储在共享首选项中。您可以将其转换为JSON字符串并将其存储在共享首选项中。