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 );