LINUX.ORG.RU

Запутался в трех кнопках и чекбоксе

 , ,


0

1

Есть задачка такая, три кнопки - новое,править,сохранить ну и удалить(4я). И один чекбокс, еще есть список обычно состоящий из одного или двух элементов которые можно этими кнопками управлять. Надо сделать так, чтобы хотя бы один элемент из списка был чекбоксом помечен - isChecked(). В тоже время не больше одного. Я что-то городил из условий но получалась фигня, полуработающая. Может задачка как xor для линейной регрессии?



Последнее исправление: bad_master (всего исправлений: 2)

Тебе что надо? Проверить? Посчитай количество помеченных, сравни с 1.

Или обеспечить? Запрети снимать галочку, при установке снимай с остальных.

monk ★★★★★
()
Ответ на: комментарий от bad_master

В смысле? Всего один чекбокс? Тогда чтобы оставался ровно один включенный, только его автоматически включать при выключении.

monk ★★★★★
()

Ну вообще то что ты хочешь называется radiobutton.

Фигня действительно будет полуработающая, либо ты кривовато объяснил.

- Если у тебя должен быть помечен хотя бы один чекбокс

+

- Если у тебя может быть помечено не более одного чекбокса

то

В момент следующего клика по какому-нибудь чекбоксу, твоя проверка увидит что в системе уже есть чекнутый чекбокс, а поскольку больше одного чекать нельзя, то по идее эта проверка вернет false.

Как вариант, ты должен:

а) Присвоить всем чекбоксам предсказуемые инкрементные индексы;

б) Отловить событие клика по чекбоксу с конкретным индексом;

в) Пробежаться циклом по твоим индексам, в котором ты снимешь is_Checked со всех чекбоксов, неважно стоит он на них, или нет;

г) Поставить is_Checked на чекбокс, на который ты отловил событие.

windows10 ★★★★★
()

Может я чего не понял, но тебе будет достаточно обычного списка типа ListView. Чекбокс не нужен, в списке всегда будет выбран (selected/focused) один элемент. При заполнении списка автоматом выбирай первый или нужный элемент

man-from-36
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.