To use a choice list in your application, create an instance of the class CAknChoiceList.
Use the CAknChoiceList::NewL parameters to set the style of the choice list.
If you give no parameters, the defaults will be used. With the default parameters, a choice list with current selection is constructed.
To construct a choice list without a current selection, use the flag CAknChoiceList::EaknChoiceListWithoutCurrentSelection and an instance of CaknButton in the constructor. This button will be then used to open the choice list. The ownership of the button is transferred to the choice list.
The following sample code illustrates creating a default choice list.
const TInt KArrayGranularity ( 1 );
// Create array of choice list items
CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat ( KArrayGranularity );
CleanupStack::PushL( array );
_LIT( KListItem, "Item %d" );
for ( TInt k = 0; k < 5; k++ )
{
TBuf<32> buf;
buf.Format( KListItem, k );
array->AppendL( buf );
}
// Create choice list with array
iChoiceList = CAknChoiceList::NewL( this, array );
CleanupStack::Pop( array );
iChoiceList->SetObserver( this );
The following sample code illustrates creating a button choice list with items from resources:
_LIT( KButtonTxt, "Choice list" );
_LIT( KButtonHelpTxt, "Button help text" );
// Create a button for the choice list
CAknButton* button = CAknButton::NewLC( NULL,
NULL,
NULL,
NULL,
KButtonTxt,
KButtonHelpTxt,
KAknButtonSizeFitText,
0 );
// Create empty Choice list
iChoiceList = CAknChoiceList::NewL( this, NULL,
CAknChoiceList::EAknChoiceListWithoutCurrentSelection, button );
CleanupStack::Pop( button );
// Add items from resource
iChoiceList->SetItemsL( R_CHOICELISTEX_ITEM_ARRAY );
iArraySize = ArraySizeL( R_CHOICELISTEX_ITEM_ARRAY );
iSelection = 0;
iChoiceList->SetObserver( this );