`
yesjavame
  • 浏览: 719307 次
  • 性别: 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学习笔记.pdf

    ### Symbian学习笔记知识点概览 #### 一、Symbian系统简介 - **Symbian** 是一款由Symbian有限公司开发的移动操作系统,主要用于智能手机和平板电脑。该系统以其高度定制化能力和强大的多媒体功能著称,在早期智能...

    机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集

    机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集,个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业。 机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+

    astash7社区版-用于画uml图

    astash7社区版-用于画uml图

    程序设计基础知识.ppt

    程序设计基础知识.ppt

    第三章计算机硬件和软件要点.pptx

    第三章计算机硬件和软件要点.pptx

    全周傅氏算法的理论基础附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    移动通信原理复习要点.docx

    移动通信原理复习要点.docx

    S7-300 PLC与组态王构建的恒压供水系统:梯形图程序、接线图及组态画面解析

    内容概要:本文详细介绍了基于S7-300 PLC和组态王组态控制的恒压供水系统。首先,系统概述部分阐述了恒压供水系统的工作原理及其重要性。接着,文章深入讲解了梯形图程序的设计,包括电机控制和压力传感器信号处理的具体逻辑。随后,展示了详细的接线图和原理图,帮助读者理解各元件之间的连接关系。此外,文章还详细列出了IO分配表,确保每个输入输出接口都能得到合理的配置。最后,通过组态画面的展示,使读者能直观地了解系统的运行状态和参数变化情况。 适合人群:从事工业自动化领域的工程师和技术人员,特别是那些希望深入了解PLC编程和组态软件应用的人群。 使用场景及目标:适用于需要设计和维护恒压供水系统的工程技术人员,旨在提高他们对PLC编程、电气接线和组态画面制作的理解和技能。 其他说明:文章提供了大量的图表和代码片段,便于读者更好地理解和实践。通过对这些内容的学习,读者不仅可以掌握具体的编程技巧,还能提升解决实际问题的能力。

    毕设-基于MATLAB的人体姿态识别与动作捕捉算法研究.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    CiteSpace资源-软件安装包

    CiteSpace资源-软件安装包

    对接海康-企业安全生产管理平台 配置手册

    对接海康-企业安全生产管理平台 配置手册

    西门子PLC PVC送料配料系统S7-314C+WinCC控制程序详解及PROFIBUS通讯应用 · PLC

    内容概要:本文详细介绍了基于西门子S7-314C PLC和WinCC上位机的PVC送料配料系统控制程序。主要内容涵盖了配料系统物料分配、模拟量转换(如压力和称重)、PROFIBUS通讯系统、配方管理以及变频器(1拖6)控制等方面的技术细节。此外,文中还提到了博途V15.1 PLC程序、KTP1200触摸屏程序的应用,以及项目电气图纸的提供,旨在帮助读者全面理解和掌握该系统的运作机制和技术要点。 适合人群:从事工业自动化领域的工程师、技术人员,尤其是对西门子PLC编程和PROFIBUS通讯感兴趣的从业者。 使用场景及目标:适用于希望深入了解PVC送料配料系统的设计与实施的专业人士。通过学习本篇文章,读者能够掌握如何利用西门子PLC实现精准的物料分配、模拟量监测、配方管理和电机控制,从而提高生产效率和产品质量。 其他说明:文章不仅提供了理论知识,还包括实际案例的操作步骤,有助于读者更好地将所学应用于实践中。同时,提供的电气图纸为项目的安装、调试和维护提供了重要参考。

    ArcGISPro 规划符号库

    在国土空间规划的数字化时代,ArcGIS Pro 为规划行业带来了革新性的工具与解决方案。 其中,规划符号库的构建与应用,是提升 ArcGIS Pro 在国土空间规划领域效能的关键环节,对于实现规划成果的精准表达、高效沟通以及科学决策具有不可替代的重要作用。 国土空间规划涵盖了从宏观的区域发展战略到微观的地块用途管制等多层次、多维度的内容。 在这一复杂的工作体系中,地图作为规划成果的核心载体,其符号的规范性、准确性和专业性直接关系到规划信息的有效传递。 ArcGIS Pro 凭借其卓越的数据处理、空间分析和制图可视化能力,成为了国土空间规划工作者手中的得力工具。 而一个精心构建的规划符号库,则是确保 ArcGIS Pro 制图工作高效、规范开展的基石,能够助力规划师们将抽象的规划理念转化为直观、清晰且符合行业标准的地图语言。 加载这些符号库,可以在 ArcGIS Pro 地图工程界面,在菜单选择“插入\导入”,选择符号库stylx格式文件即可加载 ,或者选择“视图\目录窗格\样式”右键选择“添加\添加样式”也可以加载。

    西门子1500 PLC博途程序实例:大型汽车焊装自动生产线程序硬件结构详解 · PLC编程 说明

    内容概要:本文详细介绍了基于西门子1500PLC的汽车焊装生产线自动化控制系统的设计与实现。涵盖了硬件连接(如PLC、触摸屏、智能终端、机器人)、智能通信(Profinet、IO-Link、S7协议)以及高级算法的应用。具体包括设备命名规范、速度监测算法、机器人通信配置、GRAPH顺控程序、安全程序设计、MES系统通信等内容。文中还提供了具体的编程示例,展示了如何通过SCL、梯形图和STL等多种编程方式实现复杂的功能。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程和自动化生产线有研究兴趣的人群。 使用场景及目标:适用于希望深入了解PLC编程、智能通信技术和自动化生产线集成的技术人员。目标是帮助读者掌握大型自动化项目的架构设计、编程技巧和故障排查方法。 其他说明:本文不仅提供理论知识,还包括大量实际操作经验分享,有助于提高读者的实际动手能力和解决问题的能力。

    函数计算给定频率的光波长Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    python小游戏开发-冒险岛python源代码.zip

    python小游戏开发-冒险岛python源代码.zip

Global site tag (gtag.js) - Google Analytics