2013-03-21 4 views
2

Я пытаюсь добиться чего-то вроде этого BlackBerry 7.1:BlackBerry - устройте флажков в дереве

enter image description here

Но до сих пор я не смог найти или придумать способ добиться чего-то подобного. Все, что я мог найти, это «BlackBerry - TreeField with Checkboxes?», но это действительно не то, что я хочу, так как выбор родительского флажка не выбирает все дочерние флажки, и всякий раз, когда я хочу выбрать флажок, мне нужно иметь дело с дополнительным меню. Есть ли другой способ достичь этого?

ответ

2

Отступ возможен, и логика, вам придется создавать его самостоятельно.

Вы можете установить FieldChangeListener в каждом поле флажка, чтобы вы могли обнаружить, когда флажок установлен или снят. Если родительский флажок установлен или снят флажок, вручную вызовите setChecked над каждым полем для проверки/снятия отметки. Для детей, когда один из них не установлен, снимите флажок с родителя.

Это основная логика для одного уровня вложенности (родительский и дочерний). Обязательно проверьте, что событие, запускающее обновление связанных полей флажка, генерируется пользователем (не является программным), потому что слушатель изменений также вызывается назад при программном вызове setChecked. Если не принимать во внимание, вы столкнетесь с нежелательным распространением и бесконечными циклами. Конечно, если у вас было более одного уровня гнездования, тогда вам нужно будет заботиться о событиях с программным обстрелом.

Смежные вопросы