我想存储一个时间值,需要检索和编辑它.我怎么能用SharedPreferences来做这个?

推荐答案

要获取共享首选项,请使用以下方法 在您的活动中:

SharedPreferences prefs = this.getSharedPreferences(
      "com.example.app", Context.MODE_PRIVATE);

要阅读首选项:

String dateTimeKey = "com.example.app.datetime";

// use a default value using new Date()
long l = prefs.getLong(dateTimeKey, new Date().getTime()); 

编辑和保存首选项

Date dt = getSomeDate();
prefs.edit().putLong(dateTimeKey, dt.getTime()).apply();

android sdk的示例目录包含一个检索和存储共享首选项的示例.其位于:

<android-sdk-home>/samples/android-<platformversion>/ApiDemos directory

Edit==>

我注意到,在这里写下commit()apply()之间的差异也很重要.

100如果成功保存值,则返回true,否则返回false.它将值保存到SharedReferences synchronously.

101是在2.3中添加的,无论是成功还是失败都不会返回任何值.它立即将值保存到SharedPreferences,但启动asynchronous提交. 更多详细信息是here.

Android相关问答推荐

为什么使用. DeliverveAsState()时会出现空指针异常?

如何检测HitTest是否命中给定的网格对象?

泛型类型lambda函数参数作为函数参数

从单元测试访问RES/RAW文件

找不到类MultipartBody;的序列化程序

更改活动(上下文)对接收到的uri的访问权限的影响?

需要 java 17 而不是 java 11:Android CI-CD GitHub Actions

可组合函数无限地从视图模型获取值

面向Jetpack Compose的可组合放置问题

Jetpack Compose 中的用户在线指示器

使用 Kotlin 在 Android 中导航时如何防止 ViewModel 被杀死?

获取 ArithmeticException:除以零,但我没有在任何地方除以零

有人可以向我解释这两个结果有什么区别吗?

如何在jetpack compose中创建水印文字效果

如何在 Jetpack Compose 中更改 ModalNavigationDrawer 的抽屉容器 colored颜色 ?

jetpack compose 中的可点击指示是什么?

设备文件资源管理器-ROOM 数据库中的数据库文件夹为空

Android全屏AlertDialog

未解决的参考:getIntentSender / try 在 Jetpack Compose 中获取电话号码时

Google API:java.lang.ClassNotFoundException:找不到类sun.misc.Service