Итак, я недавно присоединился к поезду Kotlin, и у меня есть фрагмент, который меняет тему моего приложения android, я сделал перезапуск фрагмента после успешного переключения темы, а затем из MainActivity повторно открыл фрагмент, используя пакет установить ранее во фрагменте.
Все эти работы. Проблема, с которой я столкнулся, я также пытался изменить поле android: summary после переключения темы, но каждый раз, когда активность перезапускается, он возвращается к значению по умолчанию
Что я мог сделать неправильно ?
SettingsFragment.kt
findPreference(getString(R.string.key_dark_theme)).setOnPreferenceChangeListener { preference, newValue ->
preference.isEnabled = false
val switchPreference = preference as SwitchPreference
val intent = activity!!.intent
val tempBundle = Bundle()
intent.putExtra("bundle", tempBundle)
Thread {
val changeTheme = newValue as Boolean
try {
activity!!.runOnUiThread {
switchPreference.isChecked = changeTheme
switchPreference.summary = "On" //this clears once I restart the activity
activity!!.finish()
activity!!.startActivity(intent)
activity!!.overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out)
}
} catch (e: Exception) {
e.printStackTrace()
}
activity!!.runOnUiThread {
switchPreference.isEnabled = true
}
}.start()
false
}