Мне нужно сохранить положение переключателя (фактически 6 переключателей) как часть пользовательских настроек в Android с помощью Kotlin.
Я написал код на Java без проблем, но этот код требуетбыть в Котлине.Я думал об использовании общих настроек, как в Java, и успешно создал код для сохранения состояния одного коммутатора.Однако, когда я пишу код для добавления второго переключателя, первый переключатель получает контроль над дополнительными переключателями, и их состояние сохраняется так же, как и у первого.Кроме того, все последующие переключатели будут воспроизводиться одинаково.Я пробовал конвертер / переводчик кода Kotlin.org, но он производит кучу jabber, которые мне нужно очистить, прежде чем я смогу скомпилировать, а затем выяснить, что переведенный код, вероятно, неполон.
private fun onSwitch() {
val sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE)
val editor = sharedPreferences.edit()
push_switch1.isChecked = sharedPreferences.getBoolean(PREF_SWITCH, false)
push_switch1.setOnCheckedChangeListener { _, isChecked ->
if (isChecked){
editor.putBoolean(PREF_SWITCH, push_switch1.isChecked)
editor.putBoolean(PREF_SWITCH, true)
Toast.makeText(this@MainActivity, "Push Notification ON", Toast.LENGTH_SHORT).show()
} else {
editor.putBoolean(PREF_SWITCH, false)
Toast.makeText(this@MainActivity, "Push Notification Off", Toast.LENGTH_SHORT).show()
}
//editor.apply()
}
email_switch1.isChecked = sharedPreferences.getBoolean(PREF_SWITCH, false)
email_switch1.setOnCheckedChangeListener { _, isChecked ->
if (isChecked){
editor.putBoolean(PREF_SWITCH, email_switch1.isChecked)
editor.putBoolean(PREF_SWITCH, true)
Toast.makeText(this@MainActivity, "Email Notification ON", Toast.LENGTH_SHORT).show()
}else{
editor.putBoolean(PREF_SWITCH, false)
Toast.makeText(this@MainActivity, "Email Notification OFF", Toast.LENGTH_SHORT).show()
}
//editor.apply()
}
editor.apply()
Это страница настроек, и каждый переключатель вкл / выкл включает или выключает определенную настройку пользователя.Кроме того, состояние коммутатора должно сохраняться для сохранения настроек пользователя.