从菜单项切换实现深色主题

时间:2020-02-25 10:19:05

标签: android android-studio kotlin

我正尝试通过在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)
    }

我已经在这个问题上苦苦挣扎了一段时间了,非常感谢您的帮助。

0 个答案:

没有答案