Проверить выбранные элементы после повторного показа DialogFragment - PullRequest
0 голосов
/ 05 января 2019

У меня есть 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")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...