WEB开发网
开发学院软件开发Java MIDP高级UI的使用(二) List组件 阅读

MIDP高级UI的使用(二) List组件

 2009-09-19 00:00:00 来源:WEB开发网   
核心提示: 我们在命令处理函数commandAction() 中,可以用上面提到的几种方法来对用户选择的操作进行侦测,MIDP高级UI的使用(二) List组件(2),同时定义好对应的处理函数,来达到对应的处理效果,其他的地方和上面两种类型大同小异,可以进行多项的List 选择,Implicit( 隐含式)

我们在命令处理函数commandAction() 中,可以用上面提到的几种方法来对用户选择的操作进行侦测,同时定义好对应的处理函数,来达到对应的处理效果。

MIDP高级UI的使用(二) List组件

Implicit( 隐含式)

IMPLICIT( 隐含式) 其实和上面的单选式没什么大的区别,唯一不同的地方在于命令的处理机制上有一些细微的区别:Choice.IMPLICIT 类型的List 会在用户选择之后立刻引发事件,并将List.SELECTCOMMAND 作为第一个参数传入。

如果我们不希望该类型的 List 在按下后发出该命令作为commandAction () 的第一个参数传入,我们可以用setSelectCommand(null) ,将它关掉,需要注意的是,这样做的后果是使

commandAction() 接受到的第一个参数为null 。

MIDP高级UI的使用(二) List组件

Multiple( 多选式)

multiple( 多选式) 类型的List 顾名思义,可以进行多重选择,其他的地方和上面两种类型大同小异,可以进行多项的List 选择。

MIDP高级UI的使用(二) List组件

下面给出了一个包含这三种形式的List的Demo代码:

  1. /* 
  2. * To change this template, choose Tools | Templates 
  3. * and open the template in the editor. 
  4. */  
  5. package com.thinkrace.list;  
  6. import java.io.IOException;  
  7. import javax.microedition.lcdui.Choice;  
  8. import javax.microedition.lcdui.Command;  
  9. import javax.microedition.lcdui.CommandListener;  
 10. import javax.microedition.lcdui.Display;  
 11. import javax.microedition.lcdui.Displayable;  
 12. import javax.microedition.lcdui.Image;  
 13. import javax.microedition.lcdui.List;  
 14. import javax.microedition.midlet.*;  
 15. /** 
 16. * @author pengjw 
 17. */  
 18. public class ListDemo extends MIDlet implements CommandListener{  
 19. private static final Command CMD_EXIT = new Command("Exit",Command.EXIT,1);  
 20. private static final Command CMD_BACK = new Command("Back",Command.BACK,1);  
 21. private Display display;  
 22. private List mainList;  
 23. private List exclusiveList;  
 24. private List implicitList;  
 25. private List mutipleList;  
 26. private boolean firstTime;  
 27. private Image[] imageArray;  
 28. public ListDemo(){  
 29. display = Display.getDisplay(this);  
 30. String[] stringArray = {  
 31. "Option A",  
 32. "Option B",  
 33. "Option C",  
 34. "Option D"  
 35. };  
 36. imageArray = null;  
 37. //ExlcusiveList 的声明  
 38. exclusiveList = new List("Exclusive",Choice.EXCLUSIVE,stringArray,imageArray);  
 39. exclusiveList.addCommand(CMD_BACK);  
 40. exclusiveList.addCommand(CMD_EXIT);  
 41. exclusiveList.setCommandListener(this);  
 42. //ImplicitList 的声明  
 43. implicitList = new List("Implicit",Choice.IMPLICIT,stringArray,imageArray);  
 44. implicitList.addCommand(CMD_BACK);  
 45. implicitList.addCommand(CMD_EXIT);  
 46. implicitList.setCommandListener(this);  
 47. //MutipleListde 的声明  
 48. mutipleList = new List("Multiple",Choice.MULTIPLE,stringArray,imageArray);  
 49. mutipleList.addCommand(CMD_BACK);  
 50. mutipleList.addCommand(CMD_EXIT);  
 51. mutipleList.setCommandListener(this);  
 52. }  
 53. public void startApp() {  
 54. if(firstTime){  
 55. imageArray = null;  
 56. }  
 57. try {  
 58. //注意这里的图片路径是相对的,图片格式应该为png  
 59. Image icon = Image.createImage("/images/java.png");  
 60. imageArray = new Image[]{  
 61. icon,  
 62. icon,  
 63. icon  
 64. };  
 65. } catch (Exception e) {  
 66. e.printStackTrace();  
 67. }  
 68. String[] stringArray = {  
 69. "Exclusiver",  
 70. "Implicit",  
 71. "Multiple"  
 72. };  
 73. //mainList主菜单  
 74. mainList = new List("Choose Type",Choice.IMPLICIT,stringArray,imageArray);  
 75. mainList.addCommand(CMD_EXIT);  
 76. mainList.setCommandListener(this);  
 77. display.setCurrent(mainList);  
 78. firstTime = false;  
 79. }  
 80. public void pauseApp() {  
 81. }  
 82. public void destroyApp(boolean unconditional) {  
 83. }  
 84. //实现CommandListener接口的commandAction方法  
 85. public void commandAction(Command c, Displayable d) {  
 86. if(d.equals(mainList)){  
 87. if(c==List.SELECT_COMMAND){  
 88. if(d.equals(mainList)){  
 89. switch(((List)d).getSelectedIndex()){  
 90. case 0:  
 91. display.setCurrent(exclusiveList);  
 92. break;  
 93. case 1:  
 94. display.setCurrent(implicitList);  
 95. break;  
 96. case 2:  
 97. display.setCurrent(mutipleList);  
 98. break;  
 99. }  
 100. }  
 101. }  
 102. }else{  
 103. if(c==CMD_BACK){  
 104. display.setCurrent(mainList);  
 105. }  
 106. }  
 107. if(c==CMD_EXIT){  
 108. destroyApp(false);  
 109. notifyDestroyed();  
 110. }  
 111. }  
 112. }  
 113.  

上一页  1 2 

Tags:MIDP 高级 UI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接