Я использую ExpandableListView, а дочерняя строка имеет текстовое представление и флажок в нем.Android: динамическая маркировка флажков в ExpandableListView
Что я хочу сделать, когда пользователь нажимает кнопку, действие определяет, какие элементы «проверяются» и что-то делают с этими элементами.
Я прочитал много сообщений о том, как ExpandableListView и флажки в настоящее время не работают, и как мне нужно сохранить дополнительную структуру данных, чтобы отслеживать, что было выбрано, а не. Этот пост охватывает этот вопрос: ExpandableListView and checkboxes
Done! Теперь я могу отслеживать, что было выбрано, и то, что не было выбрано.
Теперь я хочу решить проблему флажков, не отображающих их состояния. Я заметил, что флажки изменить случайным образом, когда:
- поворот экрана меняется
- группа коллапсирует/открывает
Я знаю, что это возможно, чтобы обнаружить эти события.
Я хочу знать, есть ли способ установить флажки вручную. Первоначально я пытался
ExpandableListView elv = getExpandableListView();
for(int i = 0; i < elv.getChildCount(); i++) {
CheckBox checkbox = ... somehow get checbox within the list
checkbox.setChecked(checkList.at(i, j));
}
, где я и J указать, какую группу, и детей, и CheckList отслеживает проверяемых/непроверенных элементов.
Однако я заметил, что значение getChildCount() зависит от того, сколько групп открыто, и не обязательно сообщает мне, какой элемент списка я могу манипулировать.
РасширениеListView было использовано, и у кого-то должен был быть способ обойти эту проблему. Есть ли разумное решение? В частности, я ищу способы проверки/снятия соответствующих элементов в списке на onGroupExpand и onConfigurationChange (или аналогичных событиях).
Заранее благодарю вас!
Вы хотите, чтобы нажать на сам флажок и изменить его состояние или нажмите на listitem (строка) и изменить его состояние? – Barak
Я хочу проверить/снять флажки при каждом изменении вида или изменении списка. –