为设置列表的列表项设置值,有点拗口,大体意思是,如果用户不满意自己的设置,想把它设置回默认值的操作。 问题核心:怎样为SettingsList赋值的问题。 解决方法:iListBox->LoadSettingsL() 首先看一下创建设置列表函数CreateSettingListL(TInt aIdentifier)的重载,代码如下:
1 CAknSettingItem* CFirewallSettingList::CreateSettingItemL( TInt aIdentifier) 2 { 3 CAknSettingItem* settingItem = NULL ; 4 5 switch (aIdentifier) 6 { 7 case ESettingItemSizeLogFile: 8 settingItem = new (ELeave) CAknIntegerEdwinSettingItem(aIdentifier, iData->iSizeOfLogfile) ; 9 break ; 10 case ESettingItemIsRecordLog: 11 settingItem = new (ELeave) CAknBinaryPopupSettingItem(aIdentifier, iData->iIsRecordLog) ; 12 break ; 13 case ESettingItemDefaultAction: 14 settingItem = new (ELeave) CAknEnumeratedTextPopupSettingItem(aIdentifier, iData->iDefaultAction) ; 15 break ; 16 case ESettingItemIsAutostart: 17 settingItem = new (ELeave) CAknBinaryPopupSettingItem(aIdentifier, iData->iIsAutoStart) ; 18 break ; 19 default: 20 break; 21 } 22 return settingItem ; 23 } 24 第8、11、14、17行是用来创建设置列表的列表项,可以看出我们用了三种设置列表。 例如:CAknIntegerEdwinSettingItem(aIdentifier, iData->iSizeOfLogfile) 这个函数,其中第二个参数为我们要给该项赋值的值。 通过从新设置iData的值,然后调用LoadSettingsListL()函数,就会将iData的值重新送给SettingsList,然后将新值显示出来。 |