相同类型的共享首选项覆盖元素

时间:2018-12-17 14:02:00

标签: kotlin sharedpreferences

我有一个视图,其中有一些元素(下拉菜单,chechbox ...)。

对于下拉菜单,我将所选项目的位置保存在共享首选项中。 (这样的话)

对于复选框,我想存储一个Int(如果为false,则为0,否则为1),但是如果我的复选框的状态为false(0),则下拉列表的选定值为0。

为什么?

见我的助手:

class PreferenceHelper(context: Context) {

    val PREFERENCE_NAME = "SharedPreference"
val PREFERENCE_DEPARTEMENT = "0"
val PREFERENCE_ACTU = false
val PREFERENCE_INFOS_PRATIQUE = false
val PREFERENCE_ALERTES = false


val preference = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE)
val editor = preference.edit()

fun getPreferenceAlert() : Boolean{
    return preference.getBoolean(PREFERENCE_ALERTES.toString(), false)
}

fun setPreferenceAlertes(checked : Boolean){
    preference.edit().putBoolean(PREFERENCE_ALERTES.toString(), checked).apply()
}
fun getPreferenceActu() : Boolean{
    return preference.getBoolean(PREFERENCE_ACTU.toString(), false)
}

fun setPreferenceActu(checked : Boolean){
    preference.edit().putBoolean(PREFERENCE_ACTU.toString(), checked).apply()
}
fun getPreferenceInfo() : Boolean{
    return preference.getBoolean(PREFERENCE_INFOS_PRATIQUE.toString(), false)
}

fun setPreferenceInfoPratique(checked : Boolean){
    preference.edit().putBoolean(PREFERENCE_INFOS_PRATIQUE.toString(), checked).apply()
}
fun getPreferenceDepartement() : Int{
    return preference.getInt(PREFERENCE_DEPARTEMENT, 0)
}

fun setPreferenceDepartement(position : Int){
    preference.edit().putInt(PREFERENCE_DEPARTEMENT, position).apply()
}
}

1 个答案:

答案 0 :(得分:0)

您正在将首选项的值转换为字符串,而不是为每个首选项提供唯一的键。