Difference between revisions of "Teams Winter 2011/team1/BlackBerry/Add Menu to the Application"
(→4.b. Add Image to the Menu) |
(→4.b. Add Image to the Menu) |
||
Line 59: | Line 59: | ||
* Creates a new MenuDemoMenuItem object | * Creates a new MenuDemoMenuItem object | ||
*/ | */ | ||
− | ImageMenuItem(String title, int ordinal, int property, int | + | ImageMenuItem(String title, int ordinal, int property, int itemNum) |
{ | { | ||
super(new StringProvider(title), ordinal, property); | super(new StringProvider(title), ordinal, property); | ||
Line 65: | Line 65: | ||
// Create Image object from project resource | // Create Image object from project resource | ||
Bitmap bitmap; | Bitmap bitmap; | ||
− | switch( | + | switch(itemNum) |
{ | { | ||
case 0: | case 0: |
Revision as of 12:19, 9 April 2011
4. Add Menu to the Application
4.a. Add Menu
4.a.1. Open ViewStudentApp
class and add menu items inside the constructor.
4.a.2 Add add, edit and delete student options to the menu and set commands to execute:
MyScreen _mainScreen = new MyScreen(this);
MenuItem addItem = new MenuItem(new StringProvider("Add Student"), 200, 2);
adds.setCommand(new Command(new AddCommandHandler()));
_mainScreen.addMenuItem(addItem);
MenuItem editItem = new MenuItem(new StringProvider("Edit Student"), 300, 3);
edit.setCommand(new Command(new EditCommandHandler()));
_mainScreen.addMenuItem(editItem);
MenuItem delete = new MenuItem(new StringProvider("Delete Student"), 400, 4);
delete.setCommand(new Command(new DeleteCommandHandler()));
_mainScreen.addMenuItem(deleteItem);
pushScreen(_mainScreen);
4.a.3. Create inner classes to execute all commands:
class AddCommandHandler extends CommandHandler
{
public void execute(ReadOnlyCommandMetadata metadata, Object context){
Dialog.alert("Add was selected");
}
}
class EditCommandHandler extends CommandHandler
{
public void execute(ReadOnlyCommandMetadata metadata, Object context){
Dialog.alert("Edit was selected");
}
}
class DeleteCommandHandler extends CommandHandler
{
public void execute(ReadOnlyCommandMetadata metadata, Object context){
Dialog.alert("Delete was selected");
}
}
4.a.4. Run the application. Click on the menu you should see the following:
4.a.5. Select one of the menu options. The pop-up message should appear:
4.b. Add Image to the Menu
4.b.1. Create an abstract class that extends MenuItem to be used for creating items with image:
/**
* Concrete implementation of abstract class MenuItem
*/
class ImageMenuItem extends MenuItem
{
/**
* Creates a new MenuDemoMenuItem object
*/
ImageMenuItem(String title, int ordinal, int property, int itemNum)
{
super(new StringProvider(title), ordinal, property);
// Create Image object from project resource
Bitmap bitmap;
switch(itemNum)
{
case 0:
bitmap = Bitmap.getBitmapResource("add.png");
break;
case 1:
bitmap = Bitmap.getBitmapResource("edit.png");
break;
case 2:
bitmap = Bitmap.getBitmapResource("delete.png");
break;
case 3:
bitmap = Bitmap.getBitmapResource("email.png");
break;
case 4:
bitmap = Bitmap.getBitmapResource("map.png");
break;
default:
bitmap = Bitmap.getBitmapResource("none.png");
break;
}
Image image = ImageFactory.createImage(bitmap);
// Set image as this menu item's icon
setIcon(image);
}
}
4.b.2. Change the instantiation of menu items to use the new class created ImageMenuItem, pass the name of the menu item to the constructor:
ImageMenuItem addItem = new ImageMenuItem("Add Student", 100, 1, MENU_ADD);
addItem.setCommand(new Command(new CommandHandler() {