2015-09-01 1 views
0

J'ai un code Flex dont le groupe de boutons radio est déclaré dans la section fx: declaration, qui doit être utilisé pour les composants non-gui.Déclaration de RadioButtonGroup dans fx: Déclaration

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

Quel est le but de cette opération? Les boutons sont utilisés comme suit:

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

Aussi les boutons font référence au groupe de boutons radio dans leurs tags:

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

Répondre

1

Comme les documentation états:

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.

Notez que votre extrait de code comprend:

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

rdbtnlan est le groupe de boutons , pas une référence à un bouton particulier. Vous demandez "Quelle est la valeur sélectionnée pour ce groupe de boutons?" Sans le groupe de boutons, vous devez parcourir tous les boutons de votre composant et les vérifier individuellement, p. Ex.

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

Notez également que vous auriez aucune garantie que rdSetEng et rdSetHindi n'ont pas été les deux joueurs checkent - vous auriez à écrire une logique pour désélectionner les autres boutons radio dans le gestionnaire click de chaque bouton.

+0

pourquoi RadioButtonGroup est déclaré dans fx: Déclarations, qui est destiné aux contrôles invisibles et non aux contrôles de l'interface graphique. Je pense que cela devrait être comme .... déclaration des boutons dans le groupe Anusha

+0

Pour quoi, vous devriez demander à l'équipe de conception Flex . Avoir un RadioButtonGroup être un élément d'affichage serait certainement un design valable! La conception Flex n'a pas de position ou de dimension pour le groupe, seulement pour les boutons individuels. Cela ajoute certainement une certaine flexibilité. vous pouvez avoir des boutons sur les côtés opposés de l'écran dans le même RadioButtonGroup, avec d'autres composants entre eux. – Brian

+0

Merci @Brian cela a du sens. – Anusha