Вот мой 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