在 SharedPreferences Android 中使用当前日期作为键
Posted
技术标签:
【中文标题】在 SharedPreferences Android 中使用当前日期作为键【英文标题】:Using the current date as a key in SharedPreferences Android 【发布时间】:2015-10-11 15:15:12 【问题描述】:我正在制作一个应用程序,让我可以跟踪我在 android 中的收入/支出。我希望该应用程序能够向我显示特定时间跨度内的收入和支出。
到目前为止我得到的是这个
public void buildArray (String num, String kat, String titel)
Set<String> mySet = new HashSet<String>();
mySet.add(num);
mySet.add(kat);
mySet.add(titel);
saveData(mySet);
public void saveData (Set<String> setName)
SharedPreferences sp = this.getActivity().getSharedPreferences("Utgifter", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sp.edit();
Date date = new Date();
edit.putStringSet(String.valueOf(date), setName);
edit.commit();
对于用户输入的每个条目,我想存储四个值。条目的金额、类别和标题,以当前时间为键。
我的问题是如何从 SharedPreferences 中读取字符串集以及使用日期作为键是个好主意?无论如何循环所有保存的值并在特定时间间隔内读取这些值?
谢谢!
【问题讨论】:
【参考方案1】:在我看来,您需要的是一个数据库。
SharedPreferences
更适合存储原始数据,一旦您需要更复杂的逻辑,这将是一个挑战。
您可以使用SQLite,并创建一个数据库管理器类。
【讨论】:
感谢您的回答。我会阅读 SQLite 并希望能解决我的问题。 好吧,我确定如果你查看 youtube sqlite android 教程,你会发现大量的资源 H2 是一个纯 Java 数据库,旨在嵌入到应用程序中。比 SQLite 更强大、更成熟的数据库。见this Question。【参考方案2】:如何从 SharedPreferences 中读取字符串集 您可以将设置存储在共享首选项中并阅读它,您可以这样做
public Set<String> loadDataSet (String key)
SharedPreferences sp = this.getActivity().getSharedPreferences("Utgifter", Context.MODE_PRIVATE);
Set<String> setName = sp.getStringSet(key, Set<String> defValues);
return setName;
使用日期作为关键字是个好主意吗?
什么是关键:要检索和保存的首选项的名称
因此,如果您在保存过程中使用日期作为键,那么在 r检索您的数据时,您将如何记住相同...为此,您需要再次将日期保存某处. 因此您的密钥在您的应用程序中应该是独立且恒定的
Alternativley如果您还需要保存集和日期,则可以使用其他持久性存储机制。
【讨论】:
感谢您的回复。您在谈论哪些其他持久性存储机制?我目前正在看一些关于 SQLite 的教程。 @MartinTocaj 其他持久性机制,例如将数据写入文件并将其保存在内存中(内部或外部),使用 SQLite 数据库或通过网络将数据保存在服务器上......选择完全取决于有关您的要求和限制以获取更多信息,请参阅:developer.android.com/guide/topics/data/data-storage.html以上是关于在 SharedPreferences Android 中使用当前日期作为键的主要内容,如果未能解决你的问题,请参考以下文章
如何在颤振中创建 SharedPreferences 的 Singleton 类