在BREW中要做一个配置窗口是非常麻烦的事情,而S60的配置列表却相当方便。尤其是利用资源文件来构造配置页,在RSS中写的东西有点复杂但是代码却简化了不少。
先看简单的代码,需要自己构造一个SettingItemList类派生于CAknSettingItemList即可:
class CUniNewsSettingItemList: public CAknSettingItemList
...{
public:
void ConstructL();
CAknSettingItem* CreateSettingItemL( TInt aIdentifier );
public:
TBool iDown;
TTime iTime;
};
其中,iDown和iTime是两个需要配置的内容(这个例子中我需要在配置页让用户选择“是否自动下载”以确定“自动下载的时间”。)
然后在实现代码中这样:
void CUniNewsSettingItemList::ConstructL()
...{
CAknSettingItemList::ConstructFromResourceL( R_CFG_ITEM_LIST );
}
CAknSettingItem* CUniNewsSettingItemList::CreateSettingItemL(TInt aIdentifier)
...{
CAknSettingItem* settingItem = NULL;
switch (aIdentifier)
...{
case EMySettingItemBinary:
settingItem =
new (ELeave) CAknBinaryPopupSettingItem(
aIdentifier, iDown);
break;
case EMySettingItemTime:
settingItem =
new (ELeave) CAknTimeOrDateSettingItem(
aIdentifier,CAknTimeOrDateSettingItem::ETime,iTime);
break;
}
return settingItem;
}