为设置列表的列表项设置值,有点拗口,大体意思是,如果用户不满意自己的设置,想把它设置回默认值的操作。
问题核心:怎样为SettingsList赋值的问题。
解决方法:iListBox->LoadSettingsL()
首先看一下创建设置列表函数CreateSettingListL(TInt aIdentifier)的重载,代码如下:
例如:CAknIntegerEdwinSettingItem(aIdentifier, iData->iSizeOfLogfile) 这个函数,其中第二个参数为我们要给该项赋值的值。
通过从新设置iData的值,然后调用LoadSettingsListL()函数,就会将iData的值重新送给SettingsList,然后将新值显示出来。
问题核心:怎样为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行是用来创建设置列表的列表项,可以看出我们用了三种设置列表。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
例如:CAknIntegerEdwinSettingItem(aIdentifier, iData->iSizeOfLogfile) 这个函数,其中第二个参数为我们要给该项赋值的值。
通过从新设置iData的值,然后调用LoadSettingsListL()函数,就会将iData的值重新送给SettingsList,然后将新值显示出来。