У меня есть DialogFragment, который содержит список с множественным выбором. Когда я проверяю некоторые элементы, закрываю и снова показываю диалог, они больше не проверяются. Как я могу справиться с этим? Я убедился, что selectedDays
ArrayList не был очищен после повторного отображения диалога, но setItemChecked
все равно не работал.
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return activity?.let {
AlertDialog.Builder(it)
.setMultiChoiceItems(R.array.days_of_week, null
) { _, which, isChecked ->
if (isChecked && !selectedDays.contains(which))
selectedDays.add(which)
else if (selectedDays.contains(which))
selectedDays.remove(which)
}
.setPositiveButton(R.string.confirm, null)
.setNegativeButton(R.string.cancel
) { _, _ ->
}
.create().also { alertDialog ->
val listView = alerDialog.listView
for (day in selectedDays) {
listView.setItemChecked(day, true)
}
}
} ?: throw IllegalStateException("Activity cannot be null")
}