# Choisebox - Wie kann ich den SelectedIndex ausgeben?



## xip (11. Aug 2009)

Hallo,

denke mal ich habe hier eine wirklich leichte Frage. Aber ich komme nicht drauf. Die Funktion getSelectedIndex() wirft bei mir nur Exceptions.

Hier meine Code:

package hello;

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

public class HelloMIDlet extends MIDlet implements CommandListener {

    private Command exitCommand; // The exit command
    private Display display;     // The display for this MIDlet
    private Form form = new Form("Choice 1");
    private Command OKCommand;
    private ChoiceGroup choiceGroup;

    public HelloMIDlet() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.EXIT, 0);
        OKCommand = new Command("OK",Command.OK,0);
    }

    public void startApp()
    {      
        choiceGroup = new ChoiceGroup( "Bitte zuerst Farben wählen", Choice.EXCLUSIVE, new String[] { "rot", "grün", "blau" }, null );
        choiceGroup.setDefaultCommand(OKCommand);

        form.append(choiceGroup);
        form.addCommand(exitCommand);
        form.setCommandListener(this);

        display.setCurrent(form);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        } 
        if (c == OKCommand) {
            System.out.println( choiceGroup.getSelectedIndex() );
        }
    }
}


Und Die Exception:

TRACE: <at java.lang.NullPointerException:   0>, Exception caught in Display class
java.lang.NullPointerException:   0
 - javax.microedition.lcdui.Display$ChameleonTunnel.callItemListener(), bci=57
 - com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand(), bci=57
 - com.sun.midp.chameleon.layers.SoftButtonLayer.soft2(), bci=173
 - com.sun.midp.chameleon.layers.SoftButtonLayer.keyInput(), bci=78
 - com.sun.midp.chameleon.CWindow.keyInput(), bci=38
 - javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci=17
 - com.sun.midp.lcdui.DisplayEventListener.process(), bci=277
 - com.sun.midp.events.EventQueue.run(), bci=179
 - java.lang.Thread.run(), bci=11

Habt ihr da ein Idee?

lg


----------



## CNail187 (11. Aug 2009)

Hallo!

Also wenn ich deinen Code 1:1 kopiere passiert bei mir gar nix...

Mit folgender Änderung:


```
//choiceGroup.setDefaultCommand(OKCommand);
form.addCommand(OKCommand);
```

wird der selectedIndex einwandfrei ausgegeben.
Welchen Emulator benutzt du?

Grüße,
CNail


----------



## xip (11. Aug 2009)

whow,

habe nur das gemacht was du mir vorgeschlagen hast, und jetzt funktionierts!!!

Dank dir!!


----------



## CNail187 (11. Aug 2009)

Gern geschehen!

Danke fürs prompte Feedback!


----------

