Я пытаюсь изменить тему моего android приложения с помощью переключателя из меню действий, которое я определил следующим образом в меню. xml:
<item
android:id="@+id/darkThemeSwitch"
android:title="@string/Darktheme"
app:actionViewClass="android.widget.Switch"
app:showAsAction="always" />
По какой-то причине, в моем кодовом блоке onOptionItemSelected ничего не происходит. хотя это код внутри:
override fun onOptionsItemSelected(item: MenuItem): Boolean {
super.onOptionsItemSelected(item)
when (item.itemId) {
R.id.darkThemeSwitch -> {
Toast.makeText(this, "huh", Toast.LENGTH_SHORT).show()
val switchState = (item.actionView as Switch).isChecked
if (switchState) {
setDark()
Toast.makeText(this, "Dark Theme set", Toast.LENGTH_SHORT).show()
} else if (!switchState) {
setLight()
Toast.makeText(this, "Light Theme set", Toast.LENGTH_SHORT).show()
}
}
}
return true
}
просто для справки, вот мое onCreateOptionsMenu:
override fun onCreateOptionsMenu(menu: Menu): Boolean {
val inflater = menuInflater
inflater.inflate(R.menu.menu, menu)
return super.onCreateOptionsMenu(menu)
}
Я уже давно борюсь с этой проблемой, и я ' Буду очень признателен за любую помощь.