"Button" auf List erstellen

joh91

Mitglied
Hallo liebe Forenmitglieder,

ich habe ein kleines Problem, wahscheinlich ein Verständnisproblem,
mit einem MIDlet, dass ich gerade für mein Handy programmiere.
Ich hoffe, dass Ihr mir ein wenig behilflich sein könnt...

Zuvor sollte ich vielleicht erwähnen, dass ich in diesem Gebiet noch relativ neu bin,
zumindest was J2ME betrifft.

Also zum Programm (wirklich weit bin ich noch nicht gekommen):

Ich habe versucht eine Liste in meinem MIDlet zu programmieren, was auch funktioniert hat, diese
wird auf meinem Handy angezeigt.
Ein Listenparameter habe ich "Photo" genannt. Auch habe ich eine Klasse "Phote" kreiert über die
ein Bild angezeigt werden soll. Könnte mir also vielleicht jemand erklären, wie ich es schaffe, dass
das Bild angezeigt wird wenn ich den Parameter "Photo" auf der Liste wähle?
Habe ich einfach etwas falsch gemacht oder etwas gänzlich vergessen?
Wäre über kreative Vorschläge/Verbesserungen dankbar :p

Hier der Quelltext:

Java:
package GFS;

import java.io.IOException;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.*;

public class Programm extends MIDlet implements CommandListener
{
    Display display = Display.getDisplay(this);

    List menue = new List("Hauptmenü", List.IMPLICIT);

    Command auswahlCommand = new Command("Auswahl", Command.ITEM, 1);

    Command beendeCommand = new Command("Ende", Command.EXIT, 2);

    Command zurueckCommand = new Command("Zurück", Command.BACK, 1);

    private Form form = new Form("Bild-Editor");

    public void startApp() 
    {
        Alert willkommen = new Alert("XXX", "XXX", null, null);
        willkommen.setTimeout(5000);

         this.menue.setSelectCommand(auswahlCommand);
         this.menue.addCommand(beendeCommand);
         this.menue.addCommand(zurueckCommand);
         //this.menue.addCommand(hinzufuegenCommand);
         this.menue.setCommandListener(this);
         this.menue.append("Photo" , null);

         this.display.setCurrent(willkommen, menue);
    }

    public void pauseApp()
    {

    }

    public void destroyApp(boolean unconditional) 
    {

    }

    public void commandAction(Command c, Displayable d)
    {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    private void Image()
    {
        StringItem siPhoto = null;
        form.append("XXX");

        try 
        {
            form.append(Image.createImage("XX.png"));
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }

        form.append(siPhoto);
        display.setCurrent(form);
    }
    

    public void commandAusfuehrung(Command c, Displayable d)
    {
       if(c == auswahlCommand)
       {
            if(this.menue.getSelectedIndex() == 0)
            {
               Image();
            }

             if(this.menue.getSelectedIndex() == 1)
            {
               // Image();
            }
            
       }

        if (c == beendeCommand)
        {
            destroyApp(false);
            notifyDestroyed();
        }

        if (c == zurueckCommand)
        {
            display.setCurrent(menue);
        }


    }
}

Was meint Ihr? :p

LG Joh

P.S: Weiß vielleicht noch jemand wieso der Button "Ende" zum Beenden des Programms nicht funktioniert?
 

Mobili

Mitglied
Hallo,

die Eventhandler-Funktion für die Commands ist commandAction(Command c, Displayable d)
Diese (und nur diese) wird vom System aufgerufen und da hast Du nichts drin stehen ausser der Exception.
Deine Funktion commandAusfuehrung(Command c, Displayable d) wird nie aufgerufen.
Du mußt entweder Deinen Code aus commandAusfuehrung() in die Funktion commandAction() verschieben oder in commandAction() die Funktion commandAusfuehrung() aufrufen (und die Exception entfernen).
Dann sollte die Liste und auch der "Ende" Command funktionieren.

Grüße
Mobili
 

joh91

Mitglied
Hallo, danke für die schnelle Rückmeldung...

Habe deinen Voschlag in die Tat umgesetzt und siehe da, der
Ende Button funktioniert. macht meiner Meinung nach auch jetzt viel
mehr Sinn.
Jedoch funktioniert die Liste immer noch nicht wie gewollt.
Wenn ich auf meinem Handy "Photo" anklicke, scheint die Klasse Photo
nicht in Kraft zu treten.
Besteht zwischen

Java:
this.menue.append("Photo" , null);

und

Java:
private void Image()
    {
        StringItem siPhoto = null;
        form.append("       XXX");

        try 
        {
            form.append(Image.createImage("XX.png"));
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }

        form.append(siPhoto);
        display.setCurrent(form);
    }

überhaupt ein zusammenhang, ruft "Photo" diese Klasse überhaupt auf?

MfG Joh
 
Zuletzt bearbeitet:

Mobili

Mitglied
Hallo,

Image() ist eine Funktion und keine Klasse. Du solltest nach Möglichkeit die richtigen Begriffe verwenden.
Du erzeugst in dieser Funktion eine Variable StringItem siPhoto = null;
und fügst diese null-Referenz dann dem Form-Objekt hinzu:
form.append(siPhoto);
Das mag das Programm nicht, Du bekommst da eine NullPointerException. Daher wird die Form dann gar nicht angezeigt.
Das müsstest Du aber in Deiner Entwicklungsumgebung beim Ausführen als Fehlermeldung sehen.
Du solltest Dir unbedingt mal ansehen, wie man solche Fehler selber herausfinden kann. Das sind wichtige Grundlagen der Programmierung. Fehlermeldungen im Ausgabefenster der IDE ansehen, die Applikation im Debugger laufen lassen, zur Not System.out.println() Zeilen einfügen, aber man sollte echt in der Lage sein so etwas herauszufinden, sonst wird man beim Programmieren nicht glücklich.

Also schreib es mal so:

Java:
private void Image()
{
    StringItem siPhoto = new StringItem(null, "Mein Photo");        
    form.append("XXX");
    try
    {
        form.append(Image.createImage("/myphoto.png"));
    }
    catch (IOException ex)
    {
        ex.printStackTrace();
    }
    display.setCurrent(form);
    form.append(siPhoto);
}

Und denke beim Laden des Image auch gleich an den / vor dem Dateinamen.

Grüße
Mobili
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
W App deinstallieren per Button & Andere App Öffnen per Button Android & Cross-Platform Mobile Apps 24
W Apk automatisch installieren per Button Android & Cross-Platform Mobile Apps 55
W aus Fragmente in andere Klasse wechseln mit Button Android & Cross-Platform Mobile Apps 3
T App updaten via Button Android & Cross-Platform Mobile Apps 10
AGW Android Teilen Button ändern Android & Cross-Platform Mobile Apps 14
A Button in SurfaceView integrieren Android & Cross-Platform Mobile Apps 10
J Android App - Browser öffnen und Text eingeben/Button click auslösen Android & Cross-Platform Mobile Apps 10
L Button zum Quadrad zwingen Android & Cross-Platform Mobile Apps 2
S Android Absoluter Neuling: EditText zur Laufzeit verändern bzw. über Button Android & Cross-Platform Mobile Apps 2
L Dialog anzeigen wenn auf Button gedrückt wird. Android & Cross-Platform Mobile Apps 4
S Android ListFragment & ArrayAdapter - Button-Werte werden vergessen Android & Cross-Platform Mobile Apps 0
B Android Abfragen wie lang ein Button gedrückt wurde Android & Cross-Platform Mobile Apps 2
J Android button mithilfe einer Methode automatisch erstellen Android & Cross-Platform Mobile Apps 6
A AlertDialog Enable Button Android & Cross-Platform Mobile Apps 1
J Button array ID Problem Android & Cross-Platform Mobile Apps 2
D Android Activity wechseln per Button Android & Cross-Platform Mobile Apps 3
B Android ringProgressDialog nach Erfolg Button einfärben Android & Cross-Platform Mobile Apps 2
A Android Menü Button oben links Android & Cross-Platform Mobile Apps 1
B Mit Button GeräteEinstellung des Handys öffnen Android & Cross-Platform Mobile Apps 3
M Android Android "Up-Button" extra definieren? Android & Cross-Platform Mobile Apps 1
K Problem mit arraylist und button Android & Cross-Platform Mobile Apps 16
T Button aktivieren per Qullcode... Android & Cross-Platform Mobile Apps 3
T Button geht net... Android & Cross-Platform Mobile Apps 2
D Man sieht nicht ob Button gedrückt wurde! Android & Cross-Platform Mobile Apps 10
K Grafik Tablerow, Button erstreckt sich in der gesamten Breite trotz Beschrenkung durch (max)width Android & Cross-Platform Mobile Apps 2
G Button ein Wert zuweisen Android & Cross-Platform Mobile Apps 5
M 20 Image Button für jede Auflösung positionieren Android & Cross-Platform Mobile Apps 3
B Android Button erstellen nach Vorlage Android & Cross-Platform Mobile Apps 4
L Android Button mit Pfeil nach rechts Android & Cross-Platform Mobile Apps 1
M Einzel Verarbeitung welcher Button angeklickt wurde? Android & Cross-Platform Mobile Apps 6
G Back-Button Methode überschreiben Android & Cross-Platform Mobile Apps 2
P Android Option Button Android & Cross-Platform Mobile Apps 4
G Check Button ist unchecked trotz setChecked(true) Android & Cross-Platform Mobile Apps 6
G Android Button mit Bild Android & Cross-Platform Mobile Apps 4
W Android App Programmierung - Button ganz transparent machen Android & Cross-Platform Mobile Apps 3
L Custom Dialog Button event Android & Cross-Platform Mobile Apps 2
J Button rechtsbündig Android & Cross-Platform Mobile Apps 5
A Android Button Array? Android & Cross-Platform Mobile Apps 6
P Android Button mit bild versehen Android & Cross-Platform Mobile Apps 4
U Fire button und Command.BACK, 1 kommen sich in die quere Android & Cross-Platform Mobile Apps 2
M Android List<Sprite> sprites = new ArrayList<Sprite>() REMUVE Android & Cross-Platform Mobile Apps 2
M Activity wechseln aus List View mit Android & Cross-Platform Mobile Apps 2
D List Elemente selbst Zeichnen Android & Cross-Platform Mobile Apps 2
J Grafiken im metrischen Maß erstellen Android & Cross-Platform Mobile Apps 3
W Zip4J Zip erstellen und gespeichert URI Bilder einfügen Android & Cross-Platform Mobile Apps 3
Alex IV Android App erstellen Android & Cross-Platform Mobile Apps 3
F Audiostream erstellen und empfangen außerhalb des WLans Android & Cross-Platform Mobile Apps 8
E Neue app erstellen Android & Cross-Platform Mobile Apps 3
T Android Android Augmented Faces in Java. Neue Landmarks erstellen Android & Cross-Platform Mobile Apps 1
F Screenshot übergreifend bei erstellen (No-Root) Android & Cross-Platform Mobile Apps 1
B Inhaltsverzeichnis erstellen Android & Cross-Platform Mobile Apps 12
B Android Projekt für Android und IOS erstellen? Android & Cross-Platform Mobile Apps 5
Hijo2006 PDF erstellen Android & Cross-Platform Mobile Apps 4
? Android erstellen der grafischen Benutzeroberfläche und Kommunikation zwischen Apps Android & Cross-Platform Mobile Apps 8
D Android "mehrere" Fragmente erstellen + richtige Zuordnung. Aber wie? Android & Cross-Platform Mobile Apps 1
G Thread in einer Service erstellen Android & Cross-Platform Mobile Apps 0
G Datei erstellen Android & Cross-Platform Mobile Apps 10
A Android Datei erstellen/schreiben/auslesen Android & Cross-Platform Mobile Apps 1
H Frage bei erstellen eines Projectes Android & Cross-Platform Mobile Apps 3
J Userliste aus internet mit z.B xml erstellen Android & Cross-Platform Mobile Apps 5
L Android Datei erstellen, Daten einspeichern und auslesen Android & Cross-Platform Mobile Apps 2
F Bei einer Android Java App, Objekte erstellen Android & Cross-Platform Mobile Apps 2
H Android Contact erstellen Android & Cross-Platform Mobile Apps 2
N Wie Menü erstellen und Verknüpfen Android & Cross-Platform Mobile Apps 9
F Problem beim Erstellen der Jar File Android & Cross-Platform Mobile Apps 4
B Textdatei auf Handy erstellen / lesen / schreiben? Android & Cross-Platform Mobile Apps 2
B Programm für NokiaComunicator erstellen Android & Cross-Platform Mobile Apps 2
K Programme für Handy erstellen Android & Cross-Platform Mobile Apps 3
P Erstellen einer Jar-File Android & Cross-Platform Mobile Apps 2
B Zufallszahlen zwischen 1 und 49 erstellen? aber wie? Android & Cross-Platform Mobile Apps 7

Ähnliche Java Themen

Neue Themen


Oben