<?xml version="1.0" encoding="utf-8"?> <!-- http://blog.flexexamples.com/2010/05/20/creating-a-radio-button-item-renderer-on-a-spark-list-control-in-flex-4/ --> <s:Application name="Spark_List_itemRenderer_RadioButton_test" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <s:controlBarContent> <s:Label text="selected RadioButton: {dgr1.selection.label}" /> </s:controlBarContent> <fx:Declarations> <s:RadioButtonGroup id="dgr1" selectedValue="Three" /> </fx:Declarations> <s:List id="lst" itemRenderer="skins.RadioButtonItemRen" width="100" horizontalCenter="0" verticalCenter="0"> <s:layout> <s:VerticalLayout gap="0" horizontalAlign="contentJustify" requestedRowCount="6" /> </s:layout> <s:dataProvider> <s:ArrayList> <fx:Object val="One" gr="{dgr1}" /> <fx:Object val="Two" gr="{dgr1}" /> <fx:Object val="Three" gr="{dgr1}" /> <fx:Object val="Four" gr="{dgr1}" /> <fx:Object val="Five" gr="{dgr1}" /> <fx:Object val="Six" gr="{dgr1}" /> <fx:Object val="Seven" gr="{dgr1}" /> <fx:Object val="Eight" gr="{dgr1}" /> <fx:Object val="Nine" gr="{dgr1}" /> </s:ArrayList> </s:dataProvider> </s:List> </s:Application>
And the custom Spark List item renderer, skins/RadioButtonItemRen.mxml, is as follows:
<?xml version="1.0" encoding="utf-8"?> <!-- http://blog.flexexamples.com/2010/05/20/creating-a-radio-button-item-renderer-on-a-spark-list-control-in-flex-4/ --> <s:ItemRenderer name="RadioButtonItemRen" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" autoDrawBackground="false" dataChange="itemrenderer1_dataChangeHandler(event);"> <fx:Script> <![CDATA[ protected function itemrenderer1_dataChangeHandler(evt:Event):void { rdBtn.label = data.val; rdBtn.value = data.val; rdBtn.group = data.gr; } ]]> </fx:Script> <s:RadioButton id="rdBtn" left="3" right="3" top="5" bottom="5" /> </s:ItemRenderer>