BlackBerry 应用程序开发者指南 第一卷:基础-第3章 创建用户接口(UI)
3
第3章 创建用户接口(UI)
UI API
显示UI组件。
管理UI组件
创建客户定制的UI组件
操作图片
使用图像对象画图
监听UI对象的改变
UI API
当你为BlackBerry设备编写应用程序时,使用下面2组UI API的一组:
MIDP UI API (javax.microedition.lcdui包)
BlackBerry UI API (net.rim.device.api.ui包)
如果你正在编写一个在任何MIDP兼容设备上运行的应用程序,请使用MIDP UI API.如果你正在编写专门运行在BlackBerry设备上的应用程序,那就使用BlackBerry UI API吧。BlackBerry API提供了访问BlackBerry设备的特定特性的功能,并且也允许更成熟的UI布局(layout)和交互。
注:不要在同一个程序里既使用MIDP UI API,又使用BlackBerry UI API,否则会抛出异常。在应用程序中,UI框架支持一中类型的UI对象。
显示UI组件
显示屏幕(Screen)
UI 的主要结构是Screen。一个应用程序一次只能显示一个屏幕。 注:不要使用Screen对象来输入文本。Screen对象没有明确实现此功能,它需要复杂的输入方法,例如国际化的键盘和7100系列的设备。为实现无缝得集成不同输入方法,扩展Field或者其任一子类。参看53页“创建定制的域”得到更多信息。
显示栈(Stack)
Screen对象在一个一组有序的Screen显示栈里得到维护。在栈顶的Screen对象是显示给用户的活动Screen。当应用程序显示一个Screen时,它将这个Screen压入到栈顶。当关闭一个Screen,将这个Screen从栈里移出,然后显示栈里的下一个Screen,如果必要会重绘它。
注:每个Screen在栈里只出现一次。如果同一个Screen压入到栈不止一次,VM会抛出一个运行时异常。当用户完成和Screen交互,应用程序必须将Screen从栈里移出,以致内存不必再用。不要在同一时间里使用多个Screen,因为每个Screen使用独立的线程。
Screen的类型
在多数情况下,创建一个Screen最有效的方法是创建一个扩展Screen或其任一子类,FullScreen或MainScreen的类。
类
描述
Screen
使用Screen类定义一个管理器布局Screen上的UI组件,并且使用在超类Field定义的常数的样式(Style)定义一明确的Screen。
FullScreen
缺省的,一个FullScreen包含单个垂直[1]的域管理器(Field Manager)。使用一个FullScreen提供了一个空的Screen,在这个空的Screen上,你可以增加UI组件到这个标准的垂直布局里。如果需要另外类型的布局,例如水平的或对角的,使用一个Screen类,并且在里面增加一个管理器。
MainScreen
MainScreen类提供常见的标准BlackBerry应用程序常见特性。对你的应用程序的第一个Screen,使用一个MainScreen对象来保持和其他BlackBerry应用程序的统一。MainScreen提供一下的UI组件:
l Screen标题的缺省位置,标题后的一个SeperatorField
l 一个包含在VerticalManager里的滚动的主界面。
l 有一个Close菜单项的菜单。
l 当用户点击Close菜单项或者按Escape键时缺省的关闭操作。
响应用户交互
BlackBerry API提供一个和Java标准版本类似的事件监听框架。特殊的,2个监听接口使程序接收和响应用户交互:TrackWheelListener和KeyboardListnener。Screen类和其子类都实现了这些方法。
提供screen导航(navigation)
BlackBerry应用程序为用户提供一个菜单来完成操作。避免使用按钮(Button)或其他占据Screen空间的UI组件。
注:按滑轮访问菜单。
当创建一个FullScreen或Screen,在构造子里指明DEFAULT_MENU和DEFAULT_CLOSE参数来提供缺省的导航。
FullScreen fullScreen = new FullScreen(DEFAULT_MENU | DEFAULT_CLOSE);
参数
描述
DEFAULT_MENU
这个参数增加一个缺省的菜单,它包含了不同的菜单项,这依赖域用户的上下文环境。例如,如果一个EditField获得焦点,将显示Cut,Copy和Paste菜单项。所有已选择的域提供Select和Cancel Selection菜单项。
DEFAULT_CLOSE
这个参数增加一个缺省行为的Close菜单项到菜单,当用户点击Close菜单项或者按Escapes按钮,如果Screen上的任何东西改变,一个确认的对话框将会出现。如果这个Screen是栈里的唯一一个Screen,应用程序将关闭。
当创建一个MainScreen时,缺省的导航会自动提供。
增加菜单项
创建MenuItem对象。
private MenuItem viewItem = new MenuItem("View Message", 100, 10) {
public void run() {
Dialog.inform("This [...]
Confach发表于 April 22, 2008 9:42 pm | 留言 |文档
最新留言
- 高超:还有我按照http://www.52blackberry.com/thread-291671-1-1.html这个网站的方法实验过,还是不可以,不知道哪里做的不对
- 高超:说实话我没有看懂说的是什么,但是我很想像楼主那样使用SB的应用,我想楼主详细的告诉我应该怎么操作才能使用。谢谢 另:我没有使用移动的SB,那又点贵,不知道楼主的方法是不是需要移动推入,我使用的是blackberry的8520,支持WIFI 等待回复谢谢
- nio:ESS和MDS设置完毕之后,还是无法接收邮件,请较如下: MDS设置中的 Email.userId是写邮箱登陆用户名? Email.address需要修改么? Email.personal需要修改么? ESS设置中的 Email.personal跟MDS中的Email.personal有关系吗? Email.address跟MDS中的Email.address有关系吗? 以上两项应该设置成什么? ps:我用的是126的邮箱,用本地的outlook没有问题~
- 涂鸦:姜还是老的辣。
- Kirsten30MG:A lot of professors demand to examine the writing technique, hence, people have to choose dissertation service to buy free dissertation. In such way people show academic level. And as well you should get thesis.
