`
yesjavame
  • 浏览: 687179 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Symbian学习笔记(11):初识SettingItemList

阅读更多
在BREW中要做一个配置窗口是非常麻烦的事情,而S60的配置列表却相当方便。尤其是利用资源文件来构造配置页,在RSS中写的东西有点复杂但是代码却简化了不少。

先看简单的代码,需要自己构造一个SettingItemList类派生于CAknSettingItemList即可:

classCUniNewsSettingItemList:publicCAknSettingItemList
...{
public:
voidConstructL();
CAknSettingItem
*CreateSettingItemL(TIntaIdentifier);

public:
TBooliDown;
TTimeiTime;
}
;

其中,iDown和iTime是两个需要配置的内容(这个例子中我需要在配置页让用户选择“是否自动下载”以确定“自动下载的时间”。)

然后在实现代码中这样:
voidCUniNewsSettingItemList::ConstructL()
...{
CAknSettingItemList::ConstructFromResourceL(R_CFG_ITEM_LIST);
}

CAknSettingItem
*CUniNewsSettingItemList::CreateSettingItemL(TIntaIdentifier)
...{
CAknSettingItem
*settingItem=NULL;

switch(aIdentifier)
...{
caseEMySettingItemBinary:
settingItem
=
new(ELeave)CAknBinaryPopupSettingItem(
aIdentifier,iDown);
break;
caseEMySettingItemTime:
settingItem
=
new(ELeave)CAknTimeOrDateSettingItem(
aIdentifier,CAknTimeOrDateSettingItem::ETime,iTime);
break;
}


returnsettingItem;
}

在ConstructL中简单地调用基类的函数从资源中生成配置页,而在CreateSettingItemL函数里根据aIdentifier去资源文件中读取相应的描述来生成配置项。
创建一个BOOL配置项可用CAknBinaryPopupSettingItem,它在构造函数第二个参数就是iDown成员,这样关联一下就把这个配置项与成员iDown关联上了,同理,创建一个

CAknTimeOrDateSettingItem实例,与iTime成员关联上。相关的配置项有很多,在SDK中可以找到它们的说明:API Reference Guide/C++API Reference/UI Framework/Setting Pages API。

代码差不多就这样了,使用与普通的ListBox没什么两样,只需要在保存和加载时注意一下即可。

在显示配置页时,记得先iListBox->LoadSettingsL()一下就让iListBox从成员变量中加载数据,而在保存时也同样iListBox->StoreSettingsL()让成员变量从配置页中得到配置结果。

现在来看看RSS中的描述,相对于代码来说,这稍有点复杂了。
RESOURCEAVKON_VIEWr_view_cfg
{
cba
=R_AVKON_SOFTKEYS_DONE_CANCEL;
}
RESOURCEAVKON_SETTING_ITEM_LISTr_cfg_item_list
{
flags
=EAknSettingItemNumberedStyle;
title
=qtn_cfg_title;
initial_number
=1;
items
=
{
AVKON_SETTING_ITEM
{
identifier
=EMySettingItemBinary;
setting_page_resource
=r_binary_setting_page;
associated_resource
=r_popup_setting_binary_texts;
name
=qtn_cfg_autodown;
}
,
AVKON_SETTING_ITEM
{
identifier
=EMySettingItemTime;
setting_page_resource
=r_time_setting_page;
name
=qtn_cfg_autotime;
}
};
}
RESOURCEAVKON_SETTING_PAGEr_binary_setting_page
{
number
=1;
label
=qtn_cfg_autodown;
type
=EAknCtPopupSettingList;
editor_resource_id
=r_binary_popup_setting_list;
}
RESOURCEAVKON_POPUP_SETTING_TEXTSr_popup_setting_binary_texts
{
flags
=0;
setting_texts_resource
=r_on_off_texts;
popped_up_texts_resource
=r_popped_up_on_off_texts;
}
RESOURCEARRAYr_on_off_texts
{
items
=
{
AVKON_ENUMERATED_TEXT{value
=1;text=qtn_cfg_autodown_on;},
AVKON_ENUMERATED_TEXT{value
=0;text=qtn_cfg_autodown_off;}
};
}
RESOURCEARRAYr_popped_up_on_off_texts
{
items
=
{
LBUF{txt
=qtn_cfg_autodown_on;},
LBUF{txt
=qtn_cfg_autodown_off;}
};
}
RESOURCEPOPUP_SETTING_LISTr_binary_popup_setting_list
{
flags
=0;
}
RESOURCEAVKON_SETTING_PAGEr_time_setting_page
{
number
=2;
label
=qtn_cfg_autotime;
type
=EEikCtTimeEditor;
editor_resource_id
=r_settinglist_time_editor;
}

RESOURCETIME_EDITORr_settinglist_time_editor
{
minTime
=TIME
{
second
=0;
minute
=0;
hour
=0;
};
maxTime
=TIME
{
second
=59;
minute
=59;
hour
=23;
};
}

我也是按网上找到的资料来改写的。虽然看上去有点多,不过看明白了其实还是相当有规律的,应该比在代码中写大堆的东西要简便一点。
其实也可以完全在代码中动态生成配置页而不依靠资源文件中的描述。但是那样做太复杂了,我以后再去研究吧。
分享到:
评论

相关推荐

    symbian学习笔记(超级经典-适用于初学者)

    本学习笔记旨在为初学者提供全面、细致的Symbian操作系统知识,帮助你快速入门并深入理解其工作原理。 一、Symbian系统概述 Symbian操作系统最初由英国的EPOC公司开发,后被诺基亚收购并成为其主要的操作系统平台。...

    symbian学习笔记,全28讲

    【Symbian学习笔记概述】 Symbian操作系统是一款曾经广泛应用于智能手机的操作系统,尤其在诺基亚手机上占据主导地位。对于想要学习Symbian开发的初学者来说,理解其开发环境的搭建至关重要。本系列笔记共28讲,...

    Symbian学习笔记

    这些"Symbian学习笔记"涵盖了关于该平台的广泛知识,包括系统架构、编程语言、开发环境以及应用构建等方面。 1. **Symbian系统架构**:Symbian采用微内核设计,由四个主要部分组成:实时操作系统内核(OS Kernel)...

    Symbian学习笔记(中国移动开发者社区).pdf

    学习 CleanupStack #### 5.1 CleanupStack 的概念 CleanupStack 是 Symbian 系统中一种特殊的数据结构,主要用于异常处理和资源清理。当程序发生异常时,CleanupStack 会自动回溯并清理之前分配的资源,避免内存...

    symbian 学习笔记

    **Symbian操作系统详解** Symbian是一款历史悠久的智能手机操作系统,尤其在2000年至2010年间,它是全球领先的移动设备...通过深入学习和实践,开发者可以从Symbian中学到很多关于移动平台优化和资源管理的宝贵经验。

    Symbian塞班操作系统

    ### Symbian塞班操作系统深度解析 #### Symbian简介:智能移动终端的先驱者 Symbian操作系统,源自英国宝意昂公司(Psion)的EPOC操作系统,其设计理念强调“使用电子产品如同品尝乳酪般简单”。EPOC的命名灵感...

    rr.rar_RR_s60_symbian_symbian s60

    标题中的"rr.rar_RR_s60_symbian_symbian s60...通过这个"rr.rar"压缩包,开发者不仅可以学习到SettingItemList的具体使用,还能深入理解Symbian S60平台的开发环境和编程实践,这对于初学者来说是一条宝贵的自学路径。

    JAVA 五年的工作经验和学习笔记

    由于本人目前允许上传的资源太小,所以无法上传整个的技术学习笔记(JAVA 五年的工作经验和学习笔记),待以后有机会会分享给大家。 技术体系包括: J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)...

    转:webkit开发学习笔记(全面)_第一版

    **WebKit 开发学习笔记概述** WebKit 是一个开源的网页内容渲染引擎,被广泛应用于各种浏览器,包括谷歌的 Chrome、苹果的 Safari、以及许多其他双核浏览器。WebKit 的诞生源自苹果公司在其 Mac OS X 操作系统中对 ...

    真正的Symbian笔记.docx

    以上知识点构成了Symbian笔记的主要内容,通过学习这份笔记,开发者不仅可以理解Symbian操作系统的运作原理,还能掌握实际开发中的技巧和最佳实践。虽然Symbian系统现在已不流行,但其设计理念和许多技术仍对现代...

    Symbian学习资料(英文版)

    这个压缩包“Symbian学习资料(英文版)”显然包含了关于Symbian系统的学习资源,可能是手册、教程、代码示例或者相关的技术文档。 在深入探讨Symbian操作系统之前,我们先来理解一下它的核心概念。Symbian是由...

    Symbian 开发三步曲:Symbian OS C++ For Mobile Phones Ⅰ Ⅱ Ⅲ

    《Symbian 开发三步曲》是一套深入解析Symbian OS C++移动设备开发的专业书籍,由John Wiley & Sons出版社出版。这套书籍分别涵盖了Symbian OS的基础开发、扩展功能编程以及针对S9版本的应用开发,是嵌入式系统...

    塞班3、贝拉、安娜全景相机

    塞班3、贝拉、安娜 全景相机。

    Symbian(塞班)智能手机应用技巧

    ### Symbian(塞班)智能手机应用技巧 #### 塞班智能手机概述 智能手机的核心特征在于其搭载了一个开放式操作系统,这种系统允许用户直接安装并使用第三方软件,而非仅仅局限于预装的功能或者仅支持JAVA程序的手机。...

    塞班从霸主到弃子.docx

    1. 塞班系统的历史:塞班(Symbian)是1998年6月由英国Psion软件部门拆分后成立的塞班公司所创建的智能手机操作系统,初期由爱立信、诺基亚、松下、摩托罗拉共同投资。 2. 微软与塞班的竞争:比尔·盖茨试图让...

Global site tag (gtag.js) - Google Analytics