android - sharedPreferences - 在会话之间保存背景颜色
问题描述
抱歉新手问题,但我从 Kotlin 和 Android 应用程序开发开始。目前我正在尝试创建简单的 Activity 来切换背景颜色。我添加了 2 个正在工作并在白色和绿色之间切换颜色的按钮,但是您能否帮助我如何使用 sharedPreferences 在会话之间保存它?我无法从首选项中检索这些状态。下面的代码示例:
class OptionsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_options)
val prefs = getSharedPreferences("bgColour", Context.MODE_PRIVATE)
val editor = prefs.edit()
bt3.setOnClickListener {
Screen.setBackgroundColor(Color.GREEN)
}
bt4.setOnClickListener {
Screen.setBackgroundColor(Color.WHITE)
}
}
}
解决方案
您需要将颜色保存在您的首选项中:
val prefs = getSharedPreferences("bgColour", Context.MODE_PRIVATE)
//Retrieve the saved value, default is false.
if (prefs.getBoolean("isGreen", false)) {
Screen.setBackgroundColor(Color.GREEN)
} else {
Screen.setBackgroundColor(Color.WHITE)
}
val editor = prefs.edit()
//Save on button click
bt3.setOnClickListener {
Screen.setBackgroundColor(Color.GREEN)
editor.putBoolean("isGreen", true)
editor.apply()
}
bt4.setOnClickListener {
Screen.setBackgroundColor(Color.WHITE)
editor.putBoolean("isGreen", false)
editor.apply()
}
您可以在此处阅读有关保存键值对的更多信息。
推荐阅读
- java - 将 @OneToMany 实体与子实体一起保存(@EmbeddedId 与复合外键)
- python - 将python中的时间设置为默认8小时
- caching - 只有在 gitlab ci 中未缓存或 package.json 更改时,如何运行依赖项安装作业?
- php - 在 PHP 中重定向 - 显示 txt 文件内容
- angular - 如何从 addUserInfoFormGroup 获取“name”表单控件的“valueChanges”事件
- python - 如果值是整数,如何将浮点数格式化为整数。也就是说,将 13.0 显示为 13 而将 13.5 显示为 13.5
- azure-pipelines - 构建 id 的测试结果
- c# - 在 Web api 控制器中读取的 SQL Server 存储过程数据
- python - Pandas 过滤多个条件
- java - 仅匹配正则表达式中第一次出现的字符