自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

BlackBerry應(yīng)用開發(fā)者指南 選項(xiàng)API

移動開發(fā)
在前面我們已經(jīng)介紹了《BlackBerry應(yīng)用開發(fā)者指南》系列的使用受控API、Mail API和PIM API,本文本系列的第四篇——選項(xiàng)API。

本文為BlackBerry應(yīng)用開發(fā)者指南系列文章的第四篇《BlackBerry應(yīng)用開發(fā)者指南 選項(xiàng)API》。net.rim.blackberry.api.options 中的BlackBerry選項(xiàng)API允許你將一個選項(xiàng)條目增加到設(shè)備選項(xiàng)中.

使用此功能可以增加一個系統(tǒng)級的選項(xiàng)到多個程序可以使用的BlackBerry設(shè)備中.

當(dāng)你在主屏幕上點(diǎn)擊Options圖標(biāo)時,將會出現(xiàn)一列選項(xiàng),例如自動文本(AutoText),日期/時間(Date/Time),和防火墻.用戶可以選擇這些項(xiàng)查看某個選項(xiàng)的屏幕.此屏幕顯示一個或多個字段.一般來說,用戶可以更改每個字段的值.

增加選項(xiàng)

注冊增加選項(xiàng)

OptionsProvider接口的實(shí)現(xiàn)允許應(yīng)用程序增加選項(xiàng).它包含了getTitle(),save()以及populateMainScreen()的實(shí)現(xiàn).

BlackBerry設(shè)備啟動時增加選項(xiàng).

創(chuàng)建一個類庫工程,此工程有一個libMain()方法完成需要的注冊.

創(chuàng)建一個類庫工程

◆在BlackBerry JDE中,創(chuàng)建一個工程.

◆右擊工程,然后單擊Properties.

◆在Properties窗口,單擊Application標(biāo)簽.

◆在Project type下拉列表中,單擊Library.

◆在啟動選項(xiàng)里選擇Auto-run.

◆單擊OK.

作為一個選項(xiàng)提供者(Options Provider)注冊

getInstance()的實(shí)現(xiàn)可以得到一個類的靜態(tài)實(shí)例.一次只存在一個實(shí)例.調(diào)用libMain()的registerOptionsProvider()方法.將一個類的靜態(tài)實(shí)例作為參數(shù).

  1. private static DemoOptionsProvider _instance;  
  2. //...  
  3. public static DemoOptionsProvider getInstance() {  
  4. if(_instance == null) {  
  5.     _instance = new DemoOptionsProvider("Options Demo");  
  6. }  
  7. return _instance;  
  8. }  
  9. //...  
  10. public static void libMain(String[] args) {  
  11.     OptionsManager.registerOptionsProvider(getInstance());  

保存選項(xiàng)

為了保存當(dāng)前選擇的選項(xiàng)值,請實(shí)現(xiàn)Persistable接口.在你的實(shí)現(xiàn)中,定義方法設(shè)置所選的選項(xiàng)值,以及提交和獲取持久存儲里的選項(xiàng)值.

  注:如果你作為一個內(nèi)部類實(shí)現(xiàn)Persistable接口,將它的get(),set(),以及commit()方法設(shè)置為public,這樣其他的應(yīng)用程序就可以訪問選項(xiàng)數(shù)據(jù).

提供選項(xiàng)數(shù)據(jù)的訪問

在你的類庫里,增加一個公共方法允許其他的應(yīng)用程序訪問選項(xiàng)數(shù)據(jù).

代碼實(shí)例

本實(shí)例描述了選項(xiàng)的使用.

例: DemoOptionsProvider.java

  1. /**  
  2. * DemoOptionsProvider.java  
  3. * Copyright 2002-2005 Research In Motion Limited.  
  4. */ 
  5. package com.rim.samples.docs.demooptionsprovider;  
  6. import net.rim.blackberry.api.options.*;  
  7. import net.rim.device.api.ui.component.*;  
  8. import net.rim.device.api.ui.container.*;  
  9. import net.rim.device.api.i18n.*;  
  10. import net.rim.device.api.system.*;  
  11. import net.rim.device.api.util.*;  
  12.  
  13. // A simple library class to demonstrate the use of the options facilities.  
  14. public final class DemoOptionsProvider implements OptionsProvider {  
  15.     // members  
  16.     private ObjectChoiceField _ocf;  
  17.     private OptionsDemoData _data;  
  18.     private String _title;  
  19.     private static DemoOptionsProvider _instance;  
  20.  
  21.     // constructors  
  22.     private DemoOptionsProvider() {  
  23.        }  
  24.  
  25.     private DemoOptionsProvider(String title) {  
  26.        _title = title;  
  27.        _data = OptionsDemoData.load();  
  28.        }  
  29.  
  30.     // Only allow one instance of this class.  
  31.     public static DemoOptionsProvider getInstance() {  
  32.        if (_instance == null) {  
  33.            _instance = new DemoOptionsProvider("Options Demo");  
  34.            }  
  35.        return _instance;  
  36.        }  
  37.  
  38.     // On startup, create the instance and register it.  
  39.     public static void libMain(String[] args) {  
  40.        OptionsManager.registerOptionsProvider(getInstance());  
  41.        }  
  42.  
  43.     // Get the title for the option item.  
  44.     public String getTitle() {  
  45.        return _title;  
  46.        }  
  47.  
  48.     // Add fields to the screen.  
  49.     public void populateMainScreen(MainScreen screen) {  
  50.        int index = _data.getSelected();  
  51.        String[] choices = {“High”, “Low”, “None”};  
  52.        _ocf = new ObjectChoiceField(“Security: “, choices, index);  
  53.        screen.add(_ocf);  
  54.        }  
  55.  
  56.     // Save the data.  
  57.     public void save() {  
  58.        _data.setSelected(_ocf.getSelectedIndex());  
  59.        _data.commit();  
  60.        }  
  61.  
  62.     // Retrieve the data. Used by other applications to access options data.  
  63.     public OptionsDemoData getData() {  
  64.        return _data;  
  65.        }  
  66.  
  67.     // Inner class to store selected option values.  
  68.     public static final class OptionsDemoData implements Persistable {  
  69.        private static final long ID = 0x6af0b5eb44dc5164L;  
  70.        private int _selectedOption;  
  71.        private OptionsDemoData() {         
  72.        }  
  73.  
  74.        public int getSelected() {  
  75.            return _selectedOption;  
  76.            }  
  77.        public void setSelected(int index) {  
  78.            _selectedOption = index;  
  79.            }  
  80.  
  81.        public void commit() {  
  82.            PersistentObject.commit(this);  
  83.            }  
  84.  
  85.        private static OptionsDemoData load() {  
  86.            PersistentObject persist = PersistentStore.getPersistentObject(  
  87.                   OptionsDemoData.ID );  
  88.            OptionsDemoData contents = (OptionsDemoData)persist.getContents();  
  89.            synchronized( persist ) {  
  90.               if( contents == null ) {  
  91.                   contents = new OptionsDemoData();  
  92.                   persist.setContents( contents );  
  93.                   persist.commit();  
  94.                   }  
  95.               }  
  96.            return contents;  
  97.            }  
  98.        }  
  99.   }  

【編輯推薦】

  1. 簡介BlackBerry API
  2. BlackBerry應(yīng)用開發(fā)者指南 使用受控API
  3. BlackBerry應(yīng)用開發(fā)者指南 Mail API
  4. BlackBerry應(yīng)用開發(fā)者指南 PIM API
責(zé)任編輯:佚名 來源: 10086
相關(guān)推薦

2011-04-13 09:55:16

Mail APIBlackBerry

2011-04-13 11:31:06

PIM APIBlackBerry

2011-04-02 13:44:08

2011-04-14 10:05:16

BlackBerry

2011-04-14 10:03:32

UI組件BlackBerry

2011-04-13 14:10:27

.alx文件BlackBerry

2011-04-14 10:34:08

BlackBerry

2022-01-17 19:34:43

SentryWeb APISentry API

2010-05-22 16:57:09

BlackBerry開

2011-07-19 09:51:32

性能優(yōu)化Designing FAndroid

2011-04-18 11:00:34

使用音頻BlackBerry

2011-02-16 16:45:23

MWCRIMBlackBerry

2011-04-26 10:19:46

BlackBerry

2018-03-27 23:25:40

Paddle

2020-07-15 07:00:00

移動應(yīng)用開發(fā)者指南

2013-08-29 13:41:42

Windows 8.1

2011-04-15 15:16:28

使用圖像對象畫圖BlackBerry

2019-08-16 10:55:37

開發(fā)者技能AI

2024-05-07 08:45:16

OpenAILlamaIndex大語言模型

2021-12-31 18:35:40

監(jiān)控Sentry開發(fā)
點(diǎn)贊
收藏

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