WEB开发网
开发学院手机开发Symbian 开发 Symbian CAknSettingItemList使用心得 阅读

Symbian CAknSettingItemList使用心得

 2010-09-06 08:11:00 来源:WEB开发网   
核心提示:1, 实例化 setting item list 时,一定要遵守下面的顺序:1) CAknSettingItemList *pList = new (ELeave) CAknSettingItemList derived class2) pList->SetContainerWindowL(*this);3) p

1, 实例化 setting item list 时,一定要遵守下面的顺序:

1) CAknSettingItemList *pList = new (ELeave) CAknSettingItemList derived class

2) pList->SetContainerWindowL(*this);

3) pList->SetMopParent(this);

4) pList->ConstructFromResourceL(resource id);

5) pList->ActivateL();

不要将第四步提前到第二步,否则在container显示时会造成程序崩溃。

2, CAknSettingItemList 可以动态创建, 也可以先定义资源,然后根据资源文件创建. 如果是动态创建,(eg:http://blogimg.chinaunix.net/blog/upfile2/080319182552.zip), 则无需继承CAknSettingItemList,不过我不曾实验过. 用资源文件的方式创建,则需要创建一个继承自CAknSettingItemList的类,然后重载CreateSettingItemL, 在这个函数中,根据参数aIdentifier(这个参数的值跟资源文件中定义的每个setting item的identifier相对应)的值使用 new 创建相应类型的setting item(eg: http://blog.chinaunix.net/u/9577/showart_498338.html).

3, 设置,获取setting item的值.

在 CAknSettingItemList的子类的CreateSettingItemL函数中调用new创建setting item时,需在构造函数中指定初值; 在构造函数中, 该参数是引用型, 实参不能是局部变量,一般定义成类的成员变量, 该变量与setting item 有一个对应关系, 当setting item的内容改变了时, 该变量的值也会发生变化, 同理,改变改变量的值,setting item的内容也会发生变化; 所以我们可以通过该变量来设置,获取对应setting item的值. 但注意,在设置setting item的值后,记得在CAknSettingItemList子类中调用LoadSettingsL(), 或对相应的setting item指针调用LoadL(); 在获取setting item的值前, 在CAknSettingItemList子类中调用StoreSettingsL(), 或相应的setting item指针调用StoreL(), 否则,结果可能没有更新.

4, 定义CAknSliderSettingPage中当前值的显示格式。STRUCT SLIDER中的名为valuelabel的成员,定义了当前值的显示格式。若valuelabel为"",那么只显示当前值;若valuelabel为"Current: %U Seconds", 那么,当前值后会显示在"Current:"和"Seconds",注意,这里必须用%U, 不能用%d等TDes支持的格式。如果SLIDER 的 valuetype 设置成 EAknSliderValueNone, 那么 valuelabel

1 2 3  下一页

Tags:Symbian CAknSettingItemList 使用

编辑录入:coldstar [复制链接] [打 印]
赞助商链接