Android: пользовательский интерфейс не обновляется с помощью привязки данных на MutableSet MutableLiveData - PullRequest
0 голосов
/ 09 июня 2019

Вот мой XML:

android:textColor="@{viewModel.daysSet.contains(viewModel.days.mon) ? @color/selectedText : @color/black }"

Просмотр модели:

val daysSet = MutableLiveData<MutableSet<Days.Day>>().apply {
        value = HashSet<Days.Day>()
    }

При каждом изменении daysSet пользовательский интерфейс не изменяется. Я также сделал

binding.setLifecycleOwner(viewLifecycleOwner)

Добавление в набор:

fun evalDaySet(day: Days.Day):String {
        val daysSet = daysSet.value
        testText.value=true
        if (!daysSet!!.contains(day)) {
            daysSet.add(day)
            return "Add"
        } else {
            daysSet.remove(day)
            return "Remove"
        }
    }

Просто не обновляется. Тем не менее, набор определенно добавляется и устанавливает цвет при воссоздании вида. Привязка не уведомляется об изменении. Кажется, проблема с MutableSet. Есть ли другая структура данных, которая работает для этой цели? Карты достигают этой цели? Здесь говорится, что они «поддерживаются» здесь: https://developer.android.com/topic/libraries/data-binding/expressions#collections

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...