# Wie schließt man ein Midlet über Tasten?



## Kidao (15. Okt 2007)

Hallo! 

Habe ein kleines Problem und komme nicht weiter... und zwar versuche ich mein Programm über die Tasten zu schließen.
Der Trick dabei ist, dass ich es nicht aus der Midlet-Klasse machen möchte, ich habe eine Klasse mit 3 Listen geschrieben und dort möchte ich mit der rechten Funktionstaste(weiß nicht wie die tasten unter dem Display genau heißen) eine Liste zurück gehen und mit der linken Funktionstaste das Programm schließen.

Funktioniert auch alles soweit ganz gut, ich habe an die Klasse Listen Display und die Midlet-Klasse übergeben, die Listen werden dargestellt und ich kann aus einer Liste in die andere und mit der rechten Funktionstaste auch wieder zurück, nur will sich mein Programm nicht schließen, wenn ich auf die linke Funktionstaste drücke.

Hier ein Paar kleine Programmschnippsel:

```
public class Listen implements CommandListener {
    
	StartUp midlet;;
	Display display;
	Darstellung darstellung;
.
.
.
public Listen(Display display, Darstellung darstellung, StartUp startklasse) {
    
        midlet = startklasse;
       
        this.display = display;
        this.darstellung = darstellung;

        Image[] imageArray = null;

        String[] stringArrayWahl = {"Favoriten", "Alle"};
        wahlList = new List("Wähle Listenart", Choice.IMPLICIT, stringArrayWahl, imageArray);
        wahlList.setCommandListener(this);
        wahlList.addCommand(CMD_BACK);
        wahlList.addCommand(CMD_EXIT);
.
.
.
               if (d.equals(wahlList) && c == CMD_BACK) {
                    System.out.println("back");
                    display.setCurrent(mainList);
                }
    
                if (d.equals(wahlList) && c == CMD_EXIT) {
                    try {
                        System.out.println("exit");
                        midlet.destroyApp(true);
                     } catch (MIDletStateChangeException ex) {ex.printStackTrace();}
                }
```


```
public class StartUp extends MIDlet{
        
	Darstellung darstellung = new Darstellung();
	Berechnen berechnen = new Berechnen(darstellung);

	/**
	 * 
	 */
	public StartUp()
	{
	}
	//********************START*********************
	protected void startApp() throws MIDletStateChangeException
	{
            Display display = Display.getDisplay(this);

            //display.setCurrent(darstellung);
            
                try {
                    XML_Parser.parse();
                } catch (XmlPullParserException ex) {
                    ex.printStackTrace();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
                
            new Listen(display, darstellung, this);
	}
	
	protected void destroyApp( boolean unconditional ) throws MIDletStateChangeException{}
	
	protected void pauseApp(){}
}
```


----------



## The_S (15. Okt 2007)

naja, du rufst ja nirgends notifyDestroyed() auf. Da kann sich dann natürlich auch nichts schließen. Denkst du, durch das Aufrufen einer leeren Methode tut sich etwas?


----------



## Kidao (15. Okt 2007)

Mja, hab wohl gar nicht daran gedacht, jetzt klappt es! Vielen Dank!

Ach was ich noch fragen wollte...du weißt nicht zufällig, wie man dieses standard "Optionen-Menü" bei Nokia(N-Gage) ausschalten kann? Dort ist immer standardmäßig "Schließen" drin und alles was man auf diese Taste legt, wird in das Menü übertragen.


----------



## The_S (16. Okt 2007)

Leider kenne ich das "Standard-Menü" nicht, da ich auch kein N-Gage besitze/noch nie eines in der Hand hatte. Denke aber mal, dass das wohl nicht so einfach geht. Evtl. kannst du es mit einem Vollbild "übermalen", aber ansonsten hab ich keine Idee.


----------

