Как изменить цвет панели инструментов в соответствии с переключателем, выбранным после второго входа в систему с помощью Android kotlin

#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. способ, который я использую, правильный или нет для выхода из системы, а также для условия??