我正尝试通过在menu.xml中定义的操作菜单进行切换来更改android应用程序的主题:
<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)
}
我已经在这个问题上苦苦挣扎了一段时间了,非常感谢您的帮助。