android-studio - 旋转屏幕不保存文本颜色kotlin
问题描述
我有一个简单的增量应用程序。当您按下按钮时,数字会增加。但是,一旦数字高于 5,我也将数字更改为红色。我能够获得数字以保存旋转,但颜色会恢复正常。我不确定如何保存颜色。关于我如何做到这一点的任何想法?
// number starts at 0
var num = 0
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textView = findViewById<TextView>(R.id.textView)
val add = findViewById<Button>(R.id.button)
add.setOnClickListener {
++num
if(num > 5) {
textView.setTextColor(Color.parseColor("#FF0000"))
}
textView.setText(num.toString())
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("int", num)
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
if(savedInstanceState != null) {
num = savedInstanceState.getInt("int")
textView.setText(num.toString())
}
}
}
解决方案
更新此方法onRestoreInstanceState
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
if(savedInstanceState != null) {
num = savedInstanceState.getInt("int")
if(num > 5){
textView.setTextColor(Color.parseColor("#FF0000"))
}
textView.setText(num.toString())
}
}
推荐阅读
- flutter - Flutter 改变系统导航栏图标亮度
- angular - 子路由组件看不到的可重用组件
- javascript - 如何添加到 chrome 存储中已经存在的数组?
- reactjs - 从 React 中的配置文件动态命名组件
- windows - Windows 中 Kubernetes .yaml 中 PersistentVolume 的路径
- ansible - ansible - 如何在 --check 时打印跳过的任务名称
- xcode - SF Symbols (SwiftUI) TouchID 有指纹符号吗?
- json - 如何删除文本文件中包含指定字符的所有字符?
- bash - 如何使用双管 || 与heredoc?
- javascript - 将数组映射到对象数组中,给定对象位于结果数组的顶部