在Android中存储对象的ArrayList

时间:2013-03-01 14:11:54

标签: android arraylist

我有ArrayListString个对象,可根据需要保留值 现在我想保留它作为文件或SharedPreferences保存或将其转换为JSON ARRAY并保存..
  我的数组列表是这样的:

  ArrayList<Struct_Saved_Domains> arraylist = new ArrayList<Struct_Saved_Domains>();

我该怎么做?任何想法??

2 个答案:

答案 0 :(得分:2)

您可以使用Gson将对象转换为字符串,然后将其保存在共享首选项中:

SharedPreferences prefs = context.getSharedPreferences("prefName", Context.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putStringSet("myList", new Gson().toJson(arraylist).toString());
editor.apply();

答案 1 :(得分:1)

您可以将以下代码用于共享偏好设置。

public class WebService {

    String PREF_NAME = "PREF_NAME";
    public static SharedPreferences sp;
    Editor spEdit;

    public String UserID;
    public String Password;


    public LoginWebService(Context ctx) {
        // TODO Auto-geneated constructor stub
        sp = ctx.getSharedPreferences(PREF_NAME, 0);
        spEdit = sp.edit();
    }

    public void setUserID(String UserID) {
        spEdit.putString("UserID", UserID);
        spEdit.commit();

    }

    public String getUserID() {
        return sp.getString("UserID", "");    
    }

    public String getPassword() {
        return sp.getString("Password", "");
    }

    public void setPassword(String Password) {
        spEdit.putString("Password", Password);
        spEdit.commit();
    }





    public void clear(){
        spEdit.clear();
        spEdit.commit();
    }

}

在共享首选项中保存数据时,您可以使用如下所示。

WebService objlogin=new WebService(context);
objlogin.clear();

for (int i = 0; i <arraylist.size(); i++) 
{
objlogin.setUserID(arraylist.get(i).something); 
objlogin.setPassword(arraylist.get(i).something); 

}

然后,您将所有数据保存在分片首选项中。

希望这会对你有所帮助。