【问题标题】:Store ArrayList of Objects in Android在 Android 中存储对象的 ArrayList
【发布时间】:2013-03-01 14:11:53
【问题描述】:

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

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

我该怎么做?有什么想法吗??

【问题讨论】:

标签: android arraylist


【解决方案1】:

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

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

【讨论】:

  • 如何添加Gson??有jar文件吗?
  • 下载库的 jar 文件并将其放入项目的 libs 文件夹中。如果您没有这样的文件夹,请手动创建一个。之后你就可以出发了。
  • @Waqas.. 是的,我现在明白了.. 包括在内..谢谢
  • @Waqas .. 共享首选项不可靠.. 就像当我退出应用程序并重新加载它并尝试保存新值时,旧值就消失了。你能建议我用其他方法在数组中保留旧值并添加新值吗??
  • 您的应用使用哪个 android API 版本?如果是姜饼或以上,请在您的偏好编辑器上致电apply() 而不是commit()
【解决方案2】:

您可以将以下代码用于共享首选项。

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); 

}

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

希望这会对您有所帮助。

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多