探索J2ME:构建开销追踪系统

开发者在线 Builder.com.cn 更新时间:2002-08-09作者:BUILDER.COM 来源:

列表处理

正如你可能已经了解的那样(如果你恰好不知道,我建议你不妨查阅上面提到的文章),lcdui组件主要分为三种类型:从Screen派生的组件、从Item派生的组件和两者之外的其他综合性组件。ScreenItem组件的主要区别在于:Screen组件为其他组件起到了容器的作用。而组成Expenses用户界面的组件则是名为lsMainList组件

Lists 大致可类比于桌面应用程序中常见的列表框,主要的差别在于List在它自己的窗口之内,而其他列表框则通常包含在其他窗口中。Lists是一种Screen对象,它可以包含其他组件,但Lists 也只能包含Command组件。

Lists分三种,在调用List构造器的时候,通过设置list类的静态常量,你可以设定其类别。以下是对三种Lists的概述:

  • Implicit  Lists (如图A所示)只允许用户选择唯一一项目,在选择项目之后触发commandAction事件。
  • Exclusive Lists显示无线电按钮,一次只能选择一项。
  • Multiple  Lists 显示检查框,允许多项选择。

Expenses MIDlet的构造器代码如程序清单A所示。其中,lsMain是implicit List组件;采用append方法为其添加了若干项开销;然后用addCommand方法增加了三个Commands 。最后设置lsMain的命令侦听器(setCommandListener),这样Expenses就可以处理lsMain引发的事件了。

命令处理

现在到了讨论Command对象的时候。Commands是综合性的控件,类比于桌面应用程序中的命令按钮。主要的区别是,根据具体的平台, Command按钮有可能不具有相应的屏幕显示外观。在命令按钮的屏幕显示空间不足的情况下,或者在移动设备采用了键区(keypad)导航而非指针导航的情况下, Commands就可以映射为设备上的正确按钮,或者起多种作用的多功能按钮,也就是所谓的“软按钮”。在调用Command构造器的时候你可以指定Command类的若干静态常量,从而设定正确的按钮。

比方说,以下面的cmExit构造器为例:
cmExit = new Command("Exit", Command.EXIT, 1);

在上面的代码中,传递给构造器的第2个参数是Command.EXIT,意思是告诉应用程序管理器cmExit应当映射为键盘Exit按钮,而且只有1个可用。图B列出了你可以设置的命令类型。

图B

常用的命令类型

你可能已经从图A注意到了,DefaultGrayPhone模拟器并没有显示一个Exit按钮。这是为什么呢?实际上,具体的设计取决于最后的实现,通常情况下,也就是最接近于一个软按钮的情况下会显示Command的文本内容。图A就是这种情况。Exit命令映射到左边的软按钮。如果DefaultGrayPhone具备一个Exit按钮,那么Exit命令就不可能出现在屏幕上,相反它会被映射到设备上的Exit按钮。

用户评论

  • 用户名
  • 评论内容