首页 > 解决方案 > 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)
        }

    }
}

标签: androidkotlinsharedpreferences

解决方案


您需要将颜色保存在您的首选项中:

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()
}

您可以在此处阅读有关保存键值对的更多信息。


推荐阅读