#android #kotlin #sharedpreferences
#Android #котлин #sharedpreferences
Вопрос:
Мне нужно изменить toolbar
цвет при втором входе в систему в соответствии с RadioButton
selected
при первом входе в систему в Android kotlin. Я использовал sharedPreferences
для получения значения, radioButton
выбранного при первом входе в систему.
Чтобы установить значение переключателя в sharedPreferences
при первом входе в систему, я использовал следующий код
fun setSharedPreferences() {
val sharedPreferences = getSharedPreferences(myPreferences, Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.putString("Selected Value",radioButtonValue)
editor.apply()
}
При втором входе в систему я использовал приведенный ниже метод, чтобы получить значение из общих настроек, которое уже было установлено при первом входе в систему.
fun getSharedPreferences(): String {
val prefs = getSharedPreferences(myPreferences, Context.MODE_PRIVATE)
restoredValue= prefs.getString("text", devMode)
return restoredValue
}
Это код, который я использовал для изменения цвета панели инструментов при втором входе в систему
val restoredText=getSharedPreferences()
if(restoredText==="selectedRadioButtonValue")
{
toolbar.setBackgroundColor(Color.parseColor("#FF0000"));
}
}
Ответ №1:
прежде всего, в вашем getSharedPreferences
методе вы пытаетесь получить значение ключа, отличное от того, которое вы установили при первом входе в систему (вы сохраняете состояние первого входа в Selected Value
ключ и пытаетесь получить из другого ключа, который является text
)
во-вторых, для вашего ответа попробуйте приведенный ниже код
val restoredText=getSharedPreferences()
if(restoredText.equals("selectedRadioButtonValue"))
{
toolbar.setBackgroundDrawable(ColorDrawable(Color.parseColor("#YOUR_COLOR_CODE")))
}
}
Комментарии:
1. Хорошо, я попробую это, и я использовал следующие строки кода для функции выхода из системы, но это не работает
val next = Intent(this@LogoutActivity, LoginActivity::class.java) startActivity(next) next.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); this.finish()
2. используйте этот фрагмент кода
next.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
перед вызовомstartActivity(next)
3. Я использовал это, и я могу получить значение, которое хранится в sharedpreferences, как предложено вами, но даже после этого цвет панели инструментов не меняется
4. проверьте, запущен ли change background code snip или нет
5. способ, который я использую, правильный или нет для выхода из системы, а также для условия??