ChoiceGroup

ChoiceGroup is a group of selectable elements which may be created with a mode that requires a single choice to be made or that allows multiple choices. ChoiceGroup is in many ways similar to List and they both implement the same Choice interface.

The differences between ChoiceGroup and List are that the IMPLICIT type is not in use in ChoiceGroup and the POPUP type is used only in ChoiceGroup.

Note: Since ChoiceGroup is also an Item, the general properties of the Form Items are applied. In particular it means that ChoiceGroup has two focus indicators: One for the highlighted element inside the ChoiceGroup and one for ChoiceGroup itself inside the Form.

Figure: Two example ChoiceGroups. Notice the label change in Selection key.

Source code for the example:

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class ExampleForm4 extends MIDlet implements CommandListener {
    private Form form;
    private Command exit;
    
    public ExampleForm4() {
        form = new Form("Form example 4");
        //ChoiceGroup(label,type,elements,image)
        ChoiceGroup Choice1 = new ChoiceGroup ("Exclusive choice", Choice.EXCLUSIVE,new String[] {"Choice 1", "Choice 2", "Choice 3"}, null);
        ChoiceGroup Choice2 = new ChoiceGroup ("Multiple choice", Choice.MULTIPLE,new String[] {"Choice 1", "Choice 2", "Choice 3"}, null);
        form.append(Choice1);
        form.append(Choice2);
        exit = new Command("Exit", Command.EXIT, 1);
        form.addCommand(exit);
    }      
    public void startApp() {
        Display display = Display.getDisplay(this);
        display.setCurrent(form);
    }
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
    }
    public void commandAction(Command command, Displayable displayable) {
        if (command == exit) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
}

In MIDP 2.1, the POPUP type is usable only in ChoiceGroup. When the element is selected in a POPUP ChoiceGroup, the list is closed and the selected element is visible inline in the Form.

A ChoiceGroup element has only one line of text regardless of the fit policy.

The size (small, medium, large) and style (STYLE_PLAIN, STYLE_BOLD, STYLE_ITALIC, STYLE_UNDERLINED, and combinations of them) of Fonts can not be modified.

From S60 5th Edition onwards, font sizes can be edited with DirectUtils.getFont method in Nokia UI API.

ChoiceGroup in Series 40 devices

A ChoiceGroup element has only one line of text regardless of the fit policy.

When a POPUP ChoiceGroup is opened, it is displayed as an IMPLICIT List. Any Item Commands available on the POPUP ChoiceGroup are not carried over into the opened ChoiceGroup list. These Commands are only available in the Form.

If a Command is added or removed after the Commands for a displayable have been presented to the user, all the Commands are mapped again based on the rules presented in the previous sections. This may update the softkeys and Command list items even when they are visible.

For every ChoiceGroup element type, pressing the # key opens a separate screen displaying the selected choice element’s text in its entirety.

If a MIDlet displays a ChoiceGroup that has no elements but has Item Commands, the string empty is displayed.

If the ChoiceGroup has an image element and if it is larger than the space allocated for it, it is cropped from its right and bottom edges in order to fit within the space. If the image element is smaller than the space allocated, it is centered within the space provided.

When a MULTIPLE or EXCLUSIVE type ChoiceGroup element is displayed on the screen, pressing the Send key on the device causes the choice element in focus to be selected if it was not selected before, or is ignored if the element was already selected.

When a POPUP type ChoiceGroup element is displayed on the screen, pressing the Send key on the device opens the ChoiceGroup to display all choice elements, in the style of an IMPLICIT list.

Only plain, bold and italic font styles are supported in ChoiceGroups and Lists. Underlined and combination styles are not supported.