欢迎来到天天文库
浏览记录
ID:6134994
大小:546.00 KB
页数:76页
时间:2018-01-04
《第3章 创建用户接口》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章创建用户接口(UI)UIAPI显示UI组件。管理UI组件创建客户定制的UI组件操作图片使用图像对象画图监听UI对象的改变UIAPI当你为BlackBerry设备编写应用程序时,使用下面2组UIAPI的一组:·MIDPUIAPI(javax.microedition.lcdui包)·BlackBerryUIAPI(net.rim.device.api.ui包)如果你正在编写一个在任何MIDP兼容设备上运行的应用程序,请使用MIDPUIAPI.如果你正在编写专门运行在BlackBerry设备上的应用程序,
2、那就使用BlackBerryUIAPI吧。BlackBerryAPI提供了访问BlackBerry设备的特定特性的功能,并且也允许更成熟的UI布局(layout)和交互。注:不要在同一个程序里既使用MIDPUIAPI,又使用BlackBerryUIAPI,否则会抛出异常。在应用程序中,UI框架支持一中类型的UI对象。显示UI组件显示屏幕(Screen)UI的主要结构是Screen。一个应用程序一次只能显示一个屏幕。注:不要使用Screen对象来输入文本。Screen对象没有明确实现此功能,它需要复杂的输入方
3、法,例如国际化的键盘和7100系列的设备。为实现无缝得集成不同输入方法,扩展Field或者其任一子类。参看53页“创建定制的域”得到更多信息。显示栈(Stack)Screen对象在一个一组有序的Screen显示栈里得到维护。在栈顶的Screen对象是显示给用户的活动Screen。当应用程序显示一个Screen时,它将这个Screen压入到栈顶。当关闭一个Screen,将这个Screen从栈里移出,然后显示栈里的下一个Screen,如果必要会重绘它。注:每个Screen在栈里只出现一次。如果同一个Screen
4、压入到栈不止一次,VM会抛出一个运行时异常。当用户完成和Screen交互,应用程序必须将Screen从栈里移出,以致内存不必再用。不要在同一时间里使用多个Screen,因为每个Screen使用独立的线程。Screen的类型在多数情况下,创建一个Screen最有效的方法是创建一个扩展Screen或其任一子类,FullScreen或MainScreen的类。类描述Screen使用Screen类定义一个管理器布局Screen上的UI组件,并且使用在超类Field定义的常数的样式(Style)定义一明确的Scree
5、n。FullScreen缺省的,一个FullScreen包含单个垂直[1]的域管理器(FieldManager)。使用一个FullScreen提供了一个空的Screen,在这个空的Screen上,你可以增加UI组件到这个标准的垂直布局里。如果需要另外类型的布局,例如水平的或对角的,使用一个Screen类,并且在里面增加一个管理器。MainScreenMainScreen类提供常见的标准BlackBerry应用程序常见特性。对你的应用程序的第一个Screen,使用一个MainScreen对象来保持和其他Bla
6、ckBerry应用程序的统一。MainScreen提供一下的UI组件:l Screen标题的缺省位置,标题后的一个SeperatorFieldl 一个包含在VerticalManager里的滚动的主界面。l 有一个Close菜单项的菜单。l 当用户点击Close菜单项或者按Escape键时缺省的关闭操作。响应用户交互BlackBerryAPI提供一个和Java标准版本类似的事件监听框架。特殊的,2个监听接口使程序接收和响应用户交互:TrackWheel
7、Listener和KeyboardListnener。Screen类和其子类都实现了这些方法。提供screen导航(navigation)BlackBerry应用程序为用户提供一个菜单来完成操作。避免使用按钮(Button)或其他占据Screen空间的UI组件。注:按滑轮访问菜单。当创建一个FullScreen或Screen,在构造子里指明DEFAULT_MENU和DEFAULT_CLOSE参数来提供缺省的导航。FullScreenfullScreen=newFullScreen(DEFAULT_MENU
8、
9、DEFAULT_CLOSE);参数描述DEFAULT_MENU这个参数增加一个缺省的菜单,它包含了不同的菜单项,这依赖域用户的上下文环境。例如,如果一个EditField获得焦点,将显示Cut,Copy和Paste菜单项。所有已选择的域提供Select和CancelSelection菜单项。DEFAULT_CLOSE这个参数增加一个缺省行为的Close菜单项到菜单,当用户点击Close菜单项或者按Escapes按
此文档下载收益归作者所有