应用终止后,无法在切换按钮上设置背景和按钮监听器

时间:2019-09-30 21:31:50

标签: android kotlin togglebutton android-togglebutton

我正在使用drawable在切换按钮上设置背景。当我在应用程序中并更改任何条件时(根据切换按钮背景的变化而定),它可以正常工作。但是,如果我使用应用程序切换器终止应用程序,则背景变为透明。

toggle_button_backgroun.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false"
        android:drawable="@android:color/transparent" />
    <item android:state_checked="true"
        android:drawable="@drawable/button_round_blue_enabled" />
</selector>

功能

private fun configureToggleButtons(button: ToggleButton?, text: String, selectedButtons: Map<String, Int>) {
        button?.text = dayText.first().toString()
        button?.textOff = dayText.first().toString()
        button?.textOn = dayText.first().toString()

        if (text in selectedButtons.keys) {
            button?.isChecked = true
        }
    }

private fun setButtonListener(activity: FragmentActivity, button: ToggleButton?, text: String, num: Int) {
        button?.setOnClickListener {
            if (button.isChecked == true) selectedButtons.put(text, num) else selectedButtons.remove(text)
        }
    }

private fun updateBackground(button: ToggleButton?, activity: FragmentActivity) {
       button?.background = if (!enabled) activity.getDrawable(R.drawable.button_round_blue_disabled) else activity.getDrawable(R.drawable.toggle_button_backgroun)
}

返回到应用程序后,在我的Fragment的onStart中按以下顺序调用函数,依次配置configureToggleButtons,setButtonListener和updateBackground。因此,在调用updateBackground时,由于按钮状态位于selectedButtons中,因此按钮状态已设置为“ checked”,但是我看不到正确的button_round_blue_enabled背景,而是透明的。

我的听众也停止工作了。如果我单击按钮,setButtonListener不会执行。这仅在终止应用程序之后发生。进入背景并返回可以正常工作。

还有什么我需要设置的吗?

0 个答案:

没有答案