0

我有一个根据需要保持值ArrayList的对象。 现在我想将它保存为 FILE 或 in或将其转换为ARRAY 并保存.. 我的数组列表是这样的: String
SharedPreferencesJSON

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

我怎样才能做到这一点?任何的想法??

4

2 回答 2

2

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

SharedPreferences prefs = context.getSharedPreferences("prefName", Context.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putStringSet("myList", new Gson().toJson(arraylist).toString());
editor.apply();
于 2013-03-01T14:24:29.777 回答
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); 

}

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

希望这会帮助你。

于 2013-03-01T15:07:33.577 回答