Avatar billede nbj1 Praktikant
07. maj 2004 - 02:41 Der er 11 kommentarer og
1 løsning

menu kald

hejsa
hvis man har lavet en menuMidlet (interface) der skal kalde en anden interface som er en anden class fil hvordan fikser man lige det ?
Avatar billede simonvalter Praktikant
07. maj 2004 - 09:11 #1
jeg er vist heller ikke helt med her...
skal du ikke bare gøre dette
i MenuMidlet >>
AndenKlasse andenKlasse = new AndenKlasse();
andenKlasse.kald();
Avatar billede simonvalter Praktikant
07. maj 2004 - 09:12 #2
j2me er vist heller ikke j2ee.. det er nok nærmere på j2se
http://www.eksperten.dk/spm/Programmering/Java/
Avatar billede nbj1 Praktikant
07. maj 2004 - 09:15 #3
jo men er det en ny instands der skal laves af en klasse for at kalde en metode fra den klasse ?
det har jeg prøvet uden held :(
Avatar billede simonvalter Praktikant
07. maj 2004 - 09:22 #4
hvad får du af fejl
Avatar billede nbj1 Praktikant
07. maj 2004 - 09:27 #5
jo den brokker sig over at den metode jeg kalder i den anden klasse er void den vil have den skal have en return men så brokker den klasse sig
/*--------------------------------------------------
* Mapping.java
*
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Menu extends MIDlet implements ItemStateListener, CommandListener
{
    private Display display;      // Reference to Display object for this MIDlet.
    private Form fmMain;          // Main Form.    
//    private TextBox tbHelp;          // Textbox to display help message.
      private Command cmExit;      // Exit the MIDlet.
      private Command cmView;      // View the choice.
      private Command cmBack;      // Go "back" to the main form.
    private ChoiceGroup cgEpizza; // Go to the Pizza form.   
    private int choiceGroupIndex; // Index of a choice group on form
    private int replyIndex;          // default select       

      public Menu()
    {
        display = Display.getDisplay(this);
   
        cgEpizza = new ChoiceGroup("Menu Options", Choice.EXCLUSIVE);
       
        replyIndex = cgEpizza.append("Help", null);
        cgEpizza.append("E-Pizza", null);
        cgEpizza.append("Download", null);
       
//        cmBack  = new Command("Back",  Command.BACK, 3);
        cmExit  = new Command("Exit",  Command.EXIT, 1);
        cmView  = new Command("View",  Command.SCREEN, 2);
       
       
        fmMain = new Form("Main menu E-Pizza");
        choiceGroupIndex = fmMain.append(cgEpizza);
        fmMain.addCommand(cmExit);
        fmMain.addCommand(cmView);
        fmMain.setCommandListener(this);
       
        // Create the help Textbox with a maximum of 25 characters
//        tbHelp = new TextBox("Help Text", " Download the menu for ordering, The E-Pizza Menu, Q=Quntity Size is S=Small M=Medium L=Large", 150, 0);
//        tbHelp.addCommand(cmBack);
//        tbHelp.setCommandListener(this);
       
      }

      // Called by application manager to start the MIDlet.
      public void startApp()
      {
        display.setCurrent(fmMain);
      }

      // A required method
      public void pauseApp()
    { }

      // A required method
      public void destroyApp(boolean unconditional)
    { }

    // Process events
      public void commandAction(Command c, Displayable s)
      {
          if (c == cmView)
          {       

// --her skal jeg kalde en anden klasse Ehelp så den vises istedet
            Ehelp getDisplay = new Ehelp();
            getDisplay.startApp();
           
//            StringItem siMessage = new StringItem("You selected:",
//                cgEpizza.getString(cgEpizza.getSelectedIndex()));
//            fmMain.append(siMessage);
           
            fmMain.delete(choiceGroupIndex);
            fmMain.removeCommand(cmView);
     
          }
          else if (c == cmExit)
          {
            destroyApp(false);
              notifyDestroyed();
          }
    }
    public void itemStateChanged(Item item)             
    {
    }
   
}
Avatar billede simonvalter Praktikant
07. maj 2004 - 09:34 #6
lad mig gætte du får en

java.lang.SecurityException: Application not authorized to access the restricted API

det beyder nok at du ikke har lov til at kalde
getDisplay.startApp();

jeg vil tro at det kun er telefonen der må kalde den...
Avatar billede simonvalter Praktikant
07. maj 2004 - 09:36 #7
jeg kan heller ikke se hvorfor du vil starte en ny midlet ?

vil det ikke være nok at vise en form eller lign for den menu.
Avatar billede nbj1 Praktikant
07. maj 2004 - 09:41 #8
nej er bare et nyt interface jeg vil kalde jeg har i menu tre valg knapper en for hjælp der skal vise hjælp interfacet der er en fil for sig selv en order klasse og en download klasse når jeg har eks valgt hjælp og trykker cmview knappen skal den hente det interface som er i en klasse for sig selv
Avatar billede simonvalter Praktikant
07. maj 2004 - 09:59 #9
ok .. så skal du ikke extende MIDlet på dit nye Displayable

det du gør er at sende dit display med
f.eks.
AndenKlasse andenKlasse = new AndenKlasse(display);
andenKlasse.kald();

andenKlasse kunne feks være

public class AndenKlasse
    implements CommandListener, Runnable {

Display display;

public AndenKlasse(Displayable display){
this.display = display;
}

public void kald(){

display.setCurrent(someform);
}

}


kig på sourcen for sms sender i wtk .. den benytter sig af det samme
Avatar billede nbj1 Praktikant
07. maj 2004 - 10:03 #10
ok det vil jeg lige se om kan få det til mange tak
Avatar billede simonvalter Praktikant
31. maj 2004 - 17:02 #11
svar ;)
Avatar billede simonvalter Praktikant
18. april 2005 - 21:44 #12
lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester