Настройка фона и кнопки прослушивания на кнопке переключения не работает после завершения работы приложения - PullRequest
0 голосов
/ 01 октября 2019

Я использую 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)
}

После возвращения в приложение в onStart моего фрагмента функции вызываются в следующем порядке: configureToggleButtons, setButtonListener и затем updateBackground. Таким образом, к тому времени, когда вызывается updateBackground, состояние кнопки устанавливается на флажок, поскольку оно находится в selectedButtons, но я не вижу правого фона button_round_blue_enabled, вместо этого вижу прозрачный.

Также мои слушатели перестают работать. setButtonListener не выполняется, если я нажимаю на кнопки. Это происходит только после завершения приложения. Переход в фоновый режим и возвращение работает нормально.

Что-нибудь еще, что мне нужно установить?

...