android - 如何使用 Kotlin Android Studio 中的 SharedPreferences 保存从 API 获取的数据
问题描述
我曾经Retrofit
进行过 API 调用。现在我想使用SharedPreferences
并检查以前的促销数据方法保存数据。促销是我使用的关键字。
我创建了一个改造实例,声明了 API 服务并在 viewmodel 类中创建了一个必需的函数。现在我创建了一个getpromotinalDetails
用于FragmentHome
保存数据的方法。在onViewCreated
方法中,doInitialSetup()
方法已创建,我将检查以前的促销数据方法。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
doInitialSetup()
getPromotionalDetails()
}
private fun getPromotionalDetails() {
mUserViewModel?.getPromotionalDetails()?.observe(this, Observer { promotionBanner ->
if (promotionBanner.apiStatus == ApiStatusTypes.SUCCESS) {
//todo: save data
} else {
//Log.d("response", "failed")
}
})
}
解决方案
对于安多里德
//这些代码用于保存从api接收的json数据*
try
{
String dataReceived=jsonObject.setString("data");
SharedPreferences sharedpreferences = getSharedPreferences("mydata", Context.MODE_PRIVATE);
Editor editor = sharedpreferences.edit();
editor.putString("saveddata",dataReceived);
editor.commit();
}
catch(Exception e)
{}
//这些代码用于获取存储在共享首选项中的数据*
SharedPreferences sharedpreferences = getSharedPreferences("mydata",
Context.MODE_PRIVATE);
if (sharedpreferences.contains("saveddata")) {
String datafetched=sharedpreferences.getString("saveddata", ""));
}
推荐阅读
- glob - 使用 glob 模式排除特定文件
- c# - Increase numbers in a string
- android - 播放音乐时 BLE 扫描优先级 [Android]
- spring-boot - Spring-boot 无法识别为第三方库编写的 Koltin 序列化程序
- cgal - 包括无法罚款加载文件:CGAL_TBB_support
- pandas - 在使用 Python 的 DataFrame 中,如何在将属性分组后设置指标
- python - 为什么我不能一次运行 2 个函数?
- middleware - 我们如何在不同的文件中添加 prisma 中间件?
- ios - 在 SWIFT 字符串插值中没有更多上下文的表达式类型不明确
- python - 跟踪树莓派汽车运动