我有ArrayList
个String
个对象,可根据需要保留值
现在我想保留它作为文件或SharedPreferences
保存或将其转换为JSON
ARRAY并保存..
我的数组列表是这样的:
ArrayList<Struct_Saved_Domains> arraylist = new ArrayList<Struct_Saved_Domains>();
我该怎么做?任何想法??
答案 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);
}
然后,您将所有数据保存在分片首选项中。
希望这会对你有所帮助。