偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

BlackBerry應(yīng)用開(kāi)發(fā)者指南 UI API篇之顯示UI組件

移動(dòng)開(kāi)發(fā)
如果你正在編寫專門運(yùn)行在 BlackBerry 設(shè)備上的應(yīng)用程序,那就使用 BlackBerry UI API 吧。BlackBerry API 提供了訪問(wèn) BlackBerry 設(shè)備的特定特性的功能,并且也允許更成熟的 UI 布局(layout)和交互。

當(dāng)你為 BlackBerry 設(shè)備編寫應(yīng)用程序時(shí),使用下面 2 組 UI API 的一組:

◆MIDP UI API (javax.microedition.lcdui 包)

◆BlackBerry UIAPI (net.rim.device.api.ui 包)

如果你正在編寫一個(gè)在任何 MIDP 兼容設(shè)備上運(yùn)行的應(yīng)用程序,請(qǐng)使用 MIDP UIAPI.如果你正在編寫專門運(yùn)行在 BlackBerry 設(shè)備上的應(yīng)用程序,那就使用 BlackBerry UI API 吧。BlackBerry API 提供了訪問(wèn) BlackBerry 設(shè)備的特定特性的功能,并且也允許更成熟的 UI 布局(layout)和交互。

(注:不要在同一個(gè)程序里既使用 MIDP UI API,又使用 BlackBerry UI API,否則會(huì)拋出
異常。在應(yīng)用程序中,UI 框架支持一中類型的 UI 對(duì)象。)

顯示UI組件

顯示屏幕(Screen)

UI 的主要結(jié)構(gòu)是 Screen。一個(gè)應(yīng)用程序一次只能顯示一個(gè)屏幕。

(注:不要使用 Screen 對(duì)象來(lái)輸入文本。Screen 對(duì)象沒(méi)有明確實(shí)現(xiàn)此功能,它需要復(fù)雜的輸入方法,例如國(guó)際化的鍵盤和 7100 系列的設(shè)備。為實(shí)現(xiàn)無(wú)縫得集成不同輸入方法,擴(kuò)展Field 或者其任一子類。)

顯示棧(Stack)

Screen 對(duì)象在一個(gè)一組有序的 Screen 顯示棧里得到維護(hù)。在棧頂?shù)?Screen 對(duì)象是顯示給用戶的活動(dòng) Screen。當(dāng)應(yīng)用程序顯示一個(gè) Screen 時(shí),它將這個(gè) Screen 壓入到棧頂。當(dāng)關(guān)閉一個(gè) Screen,將這個(gè) Screen 從棧里移出,然后顯示棧里的下一個(gè) Screen,如果必要會(huì)重繪它。

(注:每個(gè) Screen 在棧里只出現(xiàn)一次。如果同一個(gè) Screen 壓入到棧不止一次,VM 會(huì)拋出一個(gè)運(yùn)行時(shí)異常。當(dāng)用戶完成和 Screen 交互,應(yīng)用程序必須將 Screen 從棧里移出,以致內(nèi)存不必再用。不要在同一時(shí)間里使用多個(gè) Screen,因?yàn)槊總€(gè) Screen 使用獨(dú)立的線程。)

Screen的類型

在多數(shù)情況下,創(chuàng)建一個(gè) Screen 最有效的方法是創(chuàng)建一個(gè)擴(kuò)展 Screen 或其任一子類,F(xiàn)ullScreen 或 MainScreen 的類。

Screen的類型

響應(yīng)用戶交互

BlackBerry API 提供一個(gè)和 Java 標(biāo)準(zhǔn)版本類似的事件監(jiān)聽(tīng)框架。特殊的,2 個(gè)監(jiān)聽(tīng)接口使程序接收和響應(yīng)用戶交互:TrackWheelListener 和 KeyboardListnener。Screen 類和其子類都實(shí)現(xiàn)了這些方法。

提供 screen導(dǎo)航(navigation)

BlackBerry 應(yīng)用程序?yàn)橛脩籼峁┮粋€(gè)菜單來(lái)完成操作。避免使用按鈕(Button)或其他占據(jù)Screen 空間的 UI 組件。

(注:按滑輪訪問(wèn)菜單。)

當(dāng)創(chuàng)建一個(gè)FullScreen或Screen,在構(gòu)造子里指明  DEFAULT_MENU  和DEFAULT_CLOSE 參數(shù)來(lái)提供缺省的導(dǎo)航。

FullScreen  fullScreen  = new FullScreen(DEFAULT_MENU  |  DEFAULT_CLOSE);

提供 screen導(dǎo)航

當(dāng)創(chuàng)建一個(gè) MainScreen 時(shí),缺省的導(dǎo)航會(huì)自動(dòng)提供。

增加菜單項(xiàng)

創(chuàng)建 MenuItem 對(duì)象。

代碼

MenuItem 構(gòu)造子接受下面的 3 個(gè)參數(shù):

MenuItem 構(gòu)造子接受下面的 3 個(gè)參數(shù)

run()定義了當(dāng)用戶點(diǎn)擊菜單項(xiàng)發(fā)生的操作的實(shí)現(xiàn)。如果你沒(méi)有使用本地資源,重寫toString()方法來(lái)指定菜單項(xiàng)的名字。

為了在應(yīng)用程序加入上下文菜單給 field,調(diào)用 getLeafFieldWithFocus(),并且調(diào)用 getContextMenu(),其返回值決定哪一個(gè) Field 接收 makeMenu()里的客戶化菜單項(xiàng)。

當(dāng)增加你自己的菜單項(xiàng)時(shí),顯式的定義一個(gè) Close 菜單項(xiàng)。

為了增加菜單項(xiàng)到 Screen 里,重寫 Screen.makeMenu()方法:

代碼

如果你擴(kuò)展Screen或其任一子類,那么當(dāng)用戶點(diǎn)擊滑輪時(shí),缺省的TrackwheelListener 實(shí)現(xiàn)調(diào)用 makeMenu( )。

如果你沒(méi)有擴(kuò)展 Screen,那么實(shí)現(xiàn) TrackwheelListener。特殊地,trackwheelClick()的實(shí)現(xiàn)創(chuàng)建一個(gè)新的菜單,增加菜單項(xiàng)以及在 Screen 上顯示菜單。

代碼

(注:為了創(chuàng)建菜單項(xiàng)提供附加的功能,請(qǐng)擴(kuò)展 MenuItem 類。)#p#

顯示對(duì)話框

PopupScreen 類通過(guò)使用它的子類,Dialog 和 Status,來(lái)提供創(chuàng)建對(duì)話框和狀態(tài) Screen的特性。Popup  screen 不會(huì)壓入到顯示棧中,為了顯示一個(gè) popup  screen,調(diào)用Dialog.ask(int)或 Status.show().

為了控制對(duì)話框的布局,使用 DialogFieldManager 對(duì)象。

為了顯示一個(gè)對(duì)話框,使用下面的一個(gè)參數(shù)來(lái)調(diào)用 Dialog.ask():

顯示一個(gè)對(duì)話框

代碼

為了指定一個(gè)對(duì)話框的缺省的響應(yīng),使用一個(gè)接受 defaultChoice 作為參數(shù)的Dialog.ask()版本。

代碼

顯示狀態(tài)消息

調(diào)用 Status.Show()顯示一個(gè)狀態(tài)消息。缺省的,狀態(tài)屏幕保留其屏幕  2 秒鐘。

  1. Status.show("Status  screen  message"); 

參看 API 參考獲取 Status.Show()的版本信息,它使你可以指定額外的參數(shù),例如不同的圖標(biāo)或者保持狀態(tài)對(duì)話框可見(jiàn)的時(shí)間長(zhǎng)短。你可以創(chuàng)建模態(tài)的狀態(tài)對(duì)話框(需要用戶取消它們),也可以創(chuàng)建計(jì)時(shí)的狀態(tài)對(duì)話框(在指定的時(shí)間后自動(dòng)取消)。#p#

顯示域(Field)

所有 UI 組件以包含在管理器里的成矩形的 field 的形式表現(xiàn)。Field 的大小取決于它的布局需求。管理器為它們包含的 field 提供滾動(dòng)(條)。

BlackBerry  JDE 在 net.rim.device.api.ui.component 包里提供一個(gè)預(yù)創(chuàng)建接口控件和組件的庫(kù)。多數(shù)情況下,你可以使用這些對(duì)象構(gòu)建 UI 應(yīng)用程序。

為了創(chuàng)建指定的 field 控件(如包含多個(gè)元素的文本 field),擴(kuò)展 Field 類或者其任意子類來(lái)創(chuàng)建你自己定制的類型。

(注:參看 API 參考獲取更多關(guān)于指定 field 類的有效、支持的格式的信息。如果使用一個(gè)不支持的格式實(shí)例化一個(gè) Field,將拋出一個(gè) IllegalArgumentException 異常。)

Bitmap Field

一個(gè) BitmapField 包含了位圖。當(dāng)使用 Graphics 對(duì)象繪圖時(shí)使用 BitmapField。為了修改一個(gè) field 的內(nèi)容,調(diào)用 BitmapField 的繪圖方法。

代碼

有 4 種預(yù)定義的位圖:

◆ Bitmap.INFORMATION

◆ Bitmap.QUESTION

◆ Bitmap.EXCLAMATION

◆ Bitmap.HOURGLASS

為了使用原始的.gif 或.png 作為位圖,調(diào)用 getBitmapResource().

(注:一個(gè)二進(jìn)制資源的大小,如一個(gè).png 文件,不能超過(guò) 63,000 字節(jié)。)

代碼

Button Field

ButtonField 包含了用戶選擇來(lái)完成操作的按鈕。使用 ButtonField 可以創(chuàng)建超出菜單的擴(kuò)展交互的界面。

(插代碼圖8)

為了給 button 增加功能,擴(kuò)展 ButtonField 并且覆寫 trackwheelClick()方法,以讓它能完成一個(gè)操作來(lái)代替調(diào)用菜單。當(dāng)用戶點(diǎn)擊 button 后為了接受消息,使用一個(gè)FieldChangeListener 對(duì)象。

Choice  field

Choice  field 類似于下拉列表。這里有 2 種 choice  field:包含整數(shù)的和包含可以轉(zhuǎn)化為字符串的對(duì)象。

你也可以顯示一組選項(xiàng)作為 check  box 或者 radio  button。

為了從 ChoiceField 里選擇一個(gè)值,用戶可以完成下面的操作:

◆點(diǎn)擊 field,并且按 Space 鍵。

◆按住 Alt 鍵,滾動(dòng)滑輪。

◆打開(kāi)菜單,選擇 Change Option。

操作

OptionField 允許用戶從列表種選擇條目。為允許用戶從選擇列表中選擇多個(gè)條目,使用  CheckBoxField 。為允許用戶從選擇列表中僅選擇一個(gè)條目,使用RadioButtonField。

使用RadioButtonField

Date Field

在你的應(yīng)用程序中,一個(gè) DateField 顯示當(dāng)前的日期和時(shí)間。

Date Field

當(dāng)創(chuàng)建一個(gè) DateField 時(shí),調(diào)用 System.currentTimeMillis()得到當(dāng)前時(shí)間。

代碼

Date  Field 缺省為可編輯的。為了創(chuàng)建一個(gè)用戶不能編輯的 Date  Field,在其構(gòu)造子中指定 Field.READONLY 參數(shù)。

將為可編輯的 Date  Field 提供一個(gè)缺省的 Change Options菜單項(xiàng)。

Edit Field

一個(gè)EditField允許用戶在此Field里輸入文本。AutoTextEditField,EditField,和PasswordEditField都擴(kuò)展了 BasicEditField.

(注:net.rim.device.api.ui.component.TextField 類,擴(kuò)展了 Field 類,并且是抽象的。實(shí)例化它的子類,例如 RichTextField 或  EditField,就是創(chuàng)建一個(gè)顯示文本或允許用戶輸入文本的UI Field。)

你可以應(yīng)用下面的過(guò)濾項(xiàng)(filter)到 Edit Field 中。

你可以應(yīng)用下面的過(guò)濾項(xiàng)(filter)到 Edit Field 中

你可以應(yīng)用下面的過(guò)濾項(xiàng)(filter)到 Edit Field 中

你可以應(yīng)用下面的過(guò)濾項(xiàng)(filter)到 Edit Field 中

你可以應(yīng)用下面的過(guò)濾項(xiàng)(filter)到 Edit Field 中

Gauge Field

Gauge 允許你創(chuàng)建數(shù)值的可視表現(xiàn)。GaugeField 顯示一個(gè)進(jìn)度條或允許用戶選擇數(shù)字。你可以使用一個(gè) Label 作為它的前綴,并顯示 gauge 的當(dāng)前值。例如,組合一個(gè) GaugeField 和一個(gè) NumericChoiceField 來(lái)創(chuàng)建一個(gè)用戶制作的數(shù)字選擇的圖形化表現(xiàn)。

為了創(chuàng)建一個(gè)交互的 GaugeField,使用 Field.FOCUSABLE 和 Field.EDITABLE 樣式實(shí)例化field。

代碼

Label (標(biāo)簽)和 Separator (分隔)Field

一個(gè) LabelField 允許你增加文本標(biāo)簽到屏幕中。LabelField 是可讀的。缺省的,它不能獲得焦點(diǎn)。大部分應(yīng)用程序在它們的***個(gè)屏幕上使用 LabelField 來(lái)顯示一個(gè)靜態(tài)的標(biāo)題。

一個(gè) SeparatorField 是一個(gè)靜態(tài)的水平線,它跨越屏幕的寬度。使用 SeparatorField將屏幕上的相關(guān)內(nèi)容和菜單分組。

MainScreen 缺省的在標(biāo)題后顯示一個(gè)分割線。

代碼

List Field

List 允許你創(chuàng)建子項(xiàng)的目錄,通過(guò)此用戶可以滾動(dòng)并選擇單個(gè)或多個(gè)條目。BlackBerry地址簿就是 List 對(duì)象的一個(gè)例子。

你不可以直接將內(nèi)容加入到 field 條目中。你的 ListField 的 ListFieldCallback和 TreeField 的 TreeFieldCallback 的實(shí)現(xiàn)會(huì)繪圖 field。

繪圖 field

Tree Field

TreeField 包含父節(jié)點(diǎn)和子節(jié)點(diǎn),并且顯示一個(gè)折疊夾或它們(例如文檔或信息折疊夾)之間的樹(shù)關(guān)系。所有節(jié)點(diǎn)都是缺省可見(jiàn)的。為了指明一個(gè)折疊夾是否可以折疊,調(diào)用TreeField  對(duì)象的 setExpand()方法。

圖標(biāo)顯示在包含有子節(jié)點(diǎn)的每個(gè)節(jié)點(diǎn)邊上以明確節(jié)點(diǎn)是打開(kāi)的還是折疊的。

代碼

TreeFieldCallback 的實(shí)現(xiàn)加入 field 到樹(shù)中。

代碼

【編輯推薦】

  1. 在BlackBerry設(shè)備上使用Java及應(yīng)用程序控制
  2. BlackBerry應(yīng)用開(kāi)發(fā)者指南基礎(chǔ)附錄 .alx文件
  3. BlackBerry應(yīng)用開(kāi)發(fā)者指南 選項(xiàng)API
  4. BlackBerry應(yīng)用開(kāi)發(fā)者指南 PIM API
  5. BlackBerry應(yīng)用開(kāi)發(fā)者指南 Mail API
責(zé)任編輯:佚名 來(lái)源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2011-04-14 10:05:16

BlackBerry

2011-04-14 10:34:08

BlackBerry

2011-04-13 09:55:16

Mail APIBlackBerry

2011-04-13 13:38:57

選項(xiàng)APIBlackBerry

2011-04-13 11:31:06

PIM APIBlackBerry

2011-04-02 13:44:08

2011-04-15 14:22:20

圖片操作UIBlackBerry

2011-04-15 16:05:00

監(jiān)聽(tīng)UI對(duì)象的改變BlackBerry

2011-04-13 14:10:27

.alx文件BlackBerry

2010-05-22 16:57:09

BlackBerry開(kāi)

2009-03-24 08:51:30

YUIJavaJavascript

2010-04-02 17:45:22

Black Berry

2022-01-17 19:34:43

SentryWeb APISentry API

2011-04-18 11:00:34

使用音頻BlackBerry

2018-01-01 20:56:43

AndroidUIAPI

2021-01-25 09:58:01

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2011-06-07 09:10:41

BlackBerry 開(kāi)發(fā)

2011-06-05 11:13:35

HTCSense UI

2011-07-19 09:51:32

性能優(yōu)化Designing FAndroid

2012-03-31 16:35:53

Metro UIAndroid
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)