gpt4 book ai didi

android - 如何在共享首选项中保存日历数据 : Android

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:39:09 25 4
gpt4 key购买 nike

我有一个 ArrayListCalendar类型,我需要将其数据保存到 SharedPreferences 中.我可以保存String ArrayList使用此代码的数据:

Set<String> setName = new HashSet<String>();
setName.addAll(ignoredProcesses);
SharedPreferences shrdPref = getSharedPreferences("sharePref", MODE_PRIVATE);
SharedPreferences.Editor prefEditor = shardPref.edit();
prefEditor.putStringSet("keyValue", setName);
prefEditor.commit();

但如果我按照相同的方法保存 Calendar数据,我在更改时遇到错误 Set输入 String .

如何保存 ArrayList <Calendar> list = new ArrayList<Calendar>();进入SharedPreferences以及如何从 SharedPrefernces 取回它.非常感谢您的帮助。谢谢

最佳答案

您必须使用方法 Calendar.getTimeInMillis() 将每个日历转换为长日历,然后使用方法 putLong(key, long) 将其保存在您的首选项中。您必须为每个条目更改 key 。这是一个例子:

    SharedPreferences shrdPref = getSharedPreferences("sharePref",MODE_PRIVATE);
SharedPreferences.Editor prefEditor = shardPref.edit();
for(int i = 0; i<list.size();i++){
long millis = list.get(i).getTimeInMillis();
prefEditor.putLong("calendar"+i,millis);
prefEditor.commit();
}

然后您将使用以下方法检索它们:

int i =0;
while(shrdPref.getLong("calendar"+i,0)!=0){
Calendar cal = new GregorianCalendar();
cal.setTimeInMillis(shrdPref.getLong("calendar"+i,0));
list.add(cal);
i++;
}

有点乱,不确定它是否有效,请尝试并告诉我。

关于android - 如何在共享首选项中保存日历数据 : Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18018996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com