2015-09-01 7 views
0

У меня есть код Flex, в котором есть группа переключателей, объявленная в разделе декларации fx:, которая должна использоваться для компонентов, отличных от gui.Объявление RadioButtonGroup в fx: Объявление

<fx:Declarations>  
<s:RadioButtonGroup id="rdbtnlan"/> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

Для чего это необходимо? Кнопки используются следующим образом:

protected function rdbtn1_clickHandler(event:MouseEvent):void 
{ 
    // TODO Auto-generated method stub 
    if(rdbtnlan.selection.value == "Eng") 
     var dbResult:SQLResult = sqlcon.SQLCon("Update setting Set Language ='Eng'"); 
    else if(rdbtnlan.selection.value == "Hindi") 
     var dbResult:SQLResult = sqlcon.SQLCon("Update setting Set Language ='Hindi'"); 
    init(); 
} 

Также кнопки относятся к группе кнопок радио в тегах:

<s:VGroup x="241" y="366" horizontalAlign="left" styleName="tabStyle" layoutDirection="ltr" id="rdbtn1"> 
     <s:RadioButton id="rdSetEng" label="English" color="Black" groupName="rdbtnlan" 
           value="Eng" click="rdbtn1_clickHandler(event)"/> 
     <s:RadioButton id="rdSetHindi" label="Hindi" color="Black" groupName="rdbtnlan" 
           value="Hindi" click="rdbtn1_clickHandler(event)"/> 
    </s:VGroup> 

ответ

1

Как documentation состояний:

The RadioButtonGroup component defines a group of RadioButton components that act as a single mutually exclusive component; therefore, a user can select only one RadioButton component at a time.

Обратите внимание, что фрагмент кода включает:

if(rdbtnlan.selection.value == "Eng") 

rdbtnlan - группа кнопок, а не ссылка на конкретную кнопку. Вы спрашиваете: «Какое значение выбрано для этой группы кнопок?»

Без группы кнопок вам необходимо выполнить итерацию всех кнопок в вашем компоненте и проверить их отдельно, например.

if (rdSetEng.selected) { 
    var dbResult:SQLResult // ... 
else if (rdSetHindi.selected) { 
    var dbResult:SQLResult // ... 
} 

Также обратите внимание, что у вас не было бы никаких гарантий, что rdSetEng и rdSetHindi не были и проверены - вам придется написать логику, чтобы отменить выбор других радиокнопки в click обработчике каждой кнопки.

+0

Почему RadioButtonGroup объявляется внутри fx: Объявления, которые предназначены для невидимых элементов управления, а не элементов управления графическим интерфейсом. Я думаю, что это должно быть как .... объявление кнопок в группе Anusha

+0

Для чего вам нужно спросить команду разработчиков Flex , Наличие RadioButtonGroup будет элементом отображения, безусловно, будет действительным дизайном! Конструкция Flex не имеет позиции или размера для группы, только для отдельных кнопок. Это, безусловно, добавляет некоторую гибкость; вы могли бы иметь кнопки на противоположных сторонах экрана в той же RadioButtonGroup, с другими компонентами между ними. – Brian

+0

Спасибо @Brian, это имеет смысл. – Anusha

Смежные вопросы