Week 2: ZombieDetector

From Mobile Application Design
Revision as of 23:42, 10 September 2007 by Deprimer (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Zombie Detector

Setup

  1. Create a new J2ME Midlet Suite in Eclipse by right-clicking in the Package Manager, selecting New -> Project -> J2ME Midlet Suite
  2. Call this ZombieDetector. Leave everything else as is.
  3. Right-click on your ZombieDetector project and select New -> Class
  4. Use src as your package and ZombieDetector as the class name. Click Finish.
  5. Open your new ZombieDetector class
  6. Cut and paste the code from below into your file. Save.
  7. Open up the ZombieDetector.jad file
  8. Click on the Midlets tab. Click Add.
  9. Write in ZombieDetector as the MIDlet name.
  10. Click in the button that appears in class. You may have to start typing Zombie in. It should find your class automatically. If nothing happens, try closing all the files down and opening them again.
  11. Right-click your project again, select Run As, then Run...
  12. Setup so that it looks something like this - run_dialog.png
  13. Run your MIDlet
/**
* Simple Zombie Detector by Michael Sharon
*
* This program will allow a user to type in a sentence and detect if they are a zombie or not. 
*/

//import relevant libraries
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class ZombieDetector extends MIDlet implements CommandListener {
  
  //contains a reference to the display
  private Display mDisplay;

  //these are the commands that we will use
  private Command mExitCommand, mDetectCommand, mCancelCommand;

  //high level user interface classes
  private TextBox mSubmitBox;

  //constructor
  public ZombieDetector() {
	  
	//create the commands that we'll be using
    mExitCommand = new Command("Exit", Command.EXIT, 0);
    mDetectCommand = new Command("Detect", Command.SCREEN, 0);
    mCancelCommand = new Command("Cancel", Command.CANCEL, 0);
    
    //create the textbox that we'll be using
    mSubmitBox = new TextBox("Zombie Detector", "Am I a Zombie?", 64, 0);
    mSubmitBox.addCommand(mExitCommand);
    mSubmitBox.addCommand(mDetectCommand);
    mSubmitBox.setCommandListener(this);        
  }

  //startApp is the very first thing run after the constructure
  public void startApp() {
	  //get a reference to the current display - usually the first thing you do
	  mDisplay = Display.getDisplay(this);
    
	  //display the submit screen
	  mDisplay.setCurrent(mSubmitBox);
  }

  //handles the MIDlet's paused state 
  public void pauseApp() {}

  //cleans up when the MIDlet is destroyed
  public void destroyApp(boolean unconditional) {}

  //This gets called whenever we select a command
  public void commandAction(Command c, Displayable s) {
    if (c == mExitCommand) {
      destroyApp(false);
      notifyDestroyed();
    }
    else if (c == mDetectCommand) {
      //start searching for zombies
      zombieSearch();      
    }
  }

  //The function which searches for zombies at the phone
  public void zombieSearch() {
	    String word = mSubmitBox.getString();
	    String isZombie = null;
		int zombieCheck = 0; 
		
		//Check if we're dealing with a zombie
		zombieCheck = word.indexOf("brains"); 
		
		//See API docs for String.indexOf
		if (zombieCheck == -1)
		{
			isZombie = "This is a live one. No zombies here."; 
		}
		else
		{
			isZombie = "Eeek! Run for your lives!"; 
		}
		
		//Create a new alert
	    Alert results = new Alert("Definition", isZombie,null, null);
	    results.setTimeout(Alert.FOREVER);
	    
	    //Display the alert, then the submit field again
	    mDisplay.setCurrent(results, mSubmitBox);
	  }

}