ChoiceGroup.MULTIPLE в Java2ME
Пишет "Vitalya" (vital_ok_{DOG}mail.ru):
Помогите плз разобраться (java2me ) с choiceGroup
MULTIPLE. С EXCLUSIVE разобрался, а с MULTIPLE что - то
При вызове конструктора
public ChoiceGroup(String label, int choiceType, String[] stringElements, Image[] imageElements)
второй параметр может иметь значения ChoiceGroup.EXCLUSIVE (радиокнопки, выбирается один элемент),
ChoiceGroup.MULTIPLE (чекбоксы, можно выбрать несколько элементов), или ChoiceGroup.POPUP (тоже можно выбрать 1 элемент, но остальные могут не показываться, вид разный в разных ява-машинах, по замыслу разработчиков - как раскрывающееся меню).
Вот пример кода из проекта.
//В классе описана группа чекбоксов, подписи и картинки для них
private ChoiceGroup inputMode;
private String [] signs = {
"Треугольники", "Гор.прямоуг.", "Верт.прямоуг.", "Квадраты",
"Верт.полосы", "Гор. полосы", "Ромбы", "Окружности"
};
private Image [] img = {null, null, null, null, null, null, null, null};
//Загрузка рисунков из папки res/frm выполнена в конструкторе мидлета
int i;
for (i=0; i<8; i++) {
try {
img[i]=Image.createImage("/frm/"+(i+1)+".png");
}
catch (java.io.IOException e) {}
}
//Где-то в нужном методе создана ChoiceGroup и выставлены флажки в зависимости от опций
inputMode=new ChoiceGroup ("Форма знака:", ChoiceGroup.MULTIPLE, signs, img);
for (i=0; i<8; i++) {
if (options.imgmode[i]>0) inputMode.setSelectedIndex (i,true);
else inputMode.setSelectedIndex (i,false);
}
...
append (inputMode);
//А вот пример обработки в методе commandAction - проверяем состояние всех 8 флажков
//и пишем опции в зависимости от выбора
for (int i=0; i<8; i++) {
if (inputMode.isSelected(i)==true) { options.imgmode[i] = 1; sel++; }
else options.imgmode[i] = 0;
}
30.11.2009, 19:17 [7996 просмотров]

