2009-04-27 14 views
2

Ich versuche eine kontextsensitive Befehlsliste zu erstellen. Ich habe die Option command.ITEM für alle meine Befehlsschaltflächen festgelegt. Aber ich konnte keinen Weg finden, wie ich die folgende Funktionalität zur Verfügung stellen könnte:Kontextsensitive Menüs - Java ME

Ich habe eine Liste von Werten sagen A, B, C Für A sollte mein Befehlsmenü 2,4 enthalten Wenn ich die Auswahl verschiebe (cursor) bis B, mein Befehlsmenü sollte 1,3 haben Wenn ich zu C gehe, sollten die Befehle 2,1 haben Wenn ich wieder zu A zurückkehre, sollte es das A-Befehlsmenü (2,4) haben

Es kann für eine Liste von Dateien und Verzeichnissen verwendet werden:

Wenn eine Datei ausgewählt ist, möchte ich Optionen (Befehle) öffnen, bearbeiten und löschen. Wenn ich ein Verzeichnis anwähle, möchte ich Befehle anzeigen, die nur geöffnet und gelöscht werden.

Vielen Dank im Voraus für jede Hilfe, die in die richtige Richtung zeigt.

Antwort

1

Die Spezifikation für die javax.microedition.lcdui.Form Klasse (was ich davon ausgehen, ist das, was Sie verwenden) heißt es:

„Diese Verfahrgeschwindigkeit und Scrollen Operationen verursachen keine Anwendung sichtbaren Ereignisse“

Es gibt auch keine Methode aufgerufen, bevor das Befehlsmenü angezeigt wird.

All dies bedeutet, dass Sie hier mit einem Formular nicht das tun können, was Sie wollen.

Abhängig von der J2ME-Implementierung auf dem jeweiligen Telefon, auf das Sie zielen, kann Ihnen javax.microedition.lcdui.CustomItem.getInteractionModes() sagen, ob Sie ein einzelnes CustomItem in Ihrem Formular verwenden können, um ein kontextsensitives Menü zu erstellen.

Die einzige sichere Möglichkeit, dies auf allen Telefonen zu tun, ist eine javax.microedition.lcdui.Canvas zu verwenden und die Steuerelemente neu zu implementieren, indem Sie sie selbst zeichnen. Sie können dann verfolgen, welcher "ausgewählt" ist, und Ihr eigenes Befehlsmenü füllen, bevor es als Reaktion auf Low-Level-Ereignisse keyPressed() angezeigt wird.

Möglicherweise möchten Sie in der Open Source-Bibliothek LWUIT nach einer intermediären Lösung suchen.

Verwandte Themen