Using List to create a Menu and Menu items in J2ME

By: Eric Giguere Viewed: 153667 times  Printer Friendly Format    


This example creates a list of items (Item1 to Item4) and calls the prepare method whenever an item is selected. The testItem# methods, where # s a number between 1 and 4, call the prepare method and set the name of the menu.

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

public class EventEx1 extends MIDlet implements CommandListener {
    // display manager
    Display display = null;
    
    // a menu with items
    List menu = null; // main menu

    // textbox
    TextBox input = null;

    // command
    static final Command backCommand = new Command("Back", Command.BACK, 0);
    static final Command mainMenuCommand = new Command("Main", Command.SCREEN, 1);
    static final Command exitCommand = new Command("Exit", Command.STOP, 2);
    String currentMenu = null;

    // constructor.
    public EventEx1() {
    }

    /**
     * Start the MIDlet by creating a list of items and associating the
     * exit command with it.
     */
    public void startApp() throws MIDletStateChangeException {
      display = Display.getDisplay(this);

      menu = new List("Menu Items", Choice.IMPLICIT);
      menu.append("Item1", null);
      menu.append("Item2", null);
      menu.append("Item3", null);
      menu.append("Item4", null);
      menu.addCommand(exitCommand);
      menu.setCommandListener(this);

      mainMenu();
    }

    public void pauseApp() {
      display = null;
      menu = null;
      input = null;
    }

    public void destroyApp(boolean unconditional) {
      notifyDestroyed();
    }

    // main menu
    void mainMenu() {
      display.setCurrent(menu);
      currentMenu = "Main"; 
    }

    /**
     * a generic method that will be called when selected any of
     * the items on the list.
     */
    public void prepare() {
       input = new TextBox("Enter some text: ", "", 5, TextField.ANY);
       input.addCommand(backCommand);
       input.setCommandListener(this);
       input.setString("");
       display.setCurrent(input);
    }

    /**
     * Test item1.
     */
    public void testItem1() {
      prepare();
      currentMenu = "item1";
    }
   
    /**
     * Test item2.
     */
    public void testItem2() {
       prepare();
       currentMenu = "item2"; 
    }

    /**
     * Test item3.
     */
    public void testItem3() {
       prepare();
       currentMenu = "item3"; 
    }

    /**
     * Test item4.
     */
    public void testItem4() {
       prepare();
       currentMenu = "item4"; 
    }


   /**
    * Handle events.
    */  
   public void commandAction(Command c, Displayable d) {
      String label = c.getLabel();
      if (label.equals("Exit")) {
         destroyApp(true);
      } else if (label.equals("Back")) {
          if(currentMenu.equals("item1") || currentMenu.equals("item2") ||
             currentMenu.equals("item3") || currentMenu.equals("item4"))  {
            // go back to menu
            mainMenu();
          } 

      } else {
         List down = (List)display.getCurrent();
         switch(down.getSelectedIndex()) {
           case 0: testItem1();break;
           case 1: testItem2();break;
           case 2: testItem3();break;
           case 3: testItem4();break;
         }
            
      }
  }
} 



Most Viewed Articles (in J2ME )

Latest Articles (in J2ME)

Comment on this tutorial

Subscribe to Tutorials

Related Tutorials

Archived Comments

1. top notch
View Tutorial          By: anu at 2010-03-15 01:46:38

2. how to display images in j2me?? thank you :)
View Tutorial          By: bill at 2011-06-23 23:59:41

3. how to show text in tab menu & when i selecte
View Tutorial          By: hina siddiqui at 2011-08-09 07:38:14

4. Good tutorial thanks i read many sites before comi
View Tutorial          By: RedMad at 2011-10-12 16:55:00

5. how to show text in tab menu & when i selected
View Tutorial          By: shadah at 2012-05-05 14:14:37

6. how to append more items in multiple choice group
View Tutorial          By: GIRIDHARAN at 2013-03-25 19:05:09