Copia de conteudo 02

Presados,
recebi duas dicas de como transferir o valor do radiobutton para a textarea
exemplo clico em masculino e no textarea teria “você selecionou sexo masculino”

as dicas são

[code]<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“absolute”>

<mx:RadioButtonGroup id="radiogroup1" />

<mx:RadioButton x="24"

                y="22"

                label="Masculino"

                groupName="radiogroup1" />

<mx:RadioButton x="24"

                y="48"

                label="Feminino"

                groupName="radiogroup1" />

<mx:TextArea x="24"

             y="78"

             text="{radiogroup1.selectedValue}" />

</mx:Application>[/code]

Com esta dica no inicio tudo foi como planejado, mas, no momento em que inceri um inputtext e tb, joguei valor para a textarea, assim que carrego o aplicativo já tenho o textarea a palavra null, como possa fazer para que isso não ocorra?

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

a segunda dica

[code]private function retornaSexo():String{

if(radioButton1.selected)
return “VOCE SELECIONOU masculino”;
else if(radioButton2.selected)
return “VOCE SELECIONOU feminino”;
else
return “”;

}

textarea text = retornaSexo();[/code]

Obs: Só agora não tenho certeza se vai “bindar” a função.

Caso não dê para bindar, você coloca no creation complete:
textarea.text = retornaSexo()
E coloca um evento no change do radio button
change=retornaSexo()

Com esta dica não consigo selecionar o segundo ratiobunton, ele ja carrega com o primeiro selecionado, neste como posso corrigir?

Obrigado a todos

c.studybacker,

Pelo que vi na segunda mensagem que você postou no fórum, o problema é que você quer exibir um texto do tipo “Você selecinou: XXX”, certo? O problema é que, se você fizer bind com o valor do RadioButtonGroup somente, ele vai ser null e não vai aparecer nada. Mas no momento em que você concatena isso com uma string, no caso o "Você selecionou: ", ele vai transformar na String “null”.

Para fazer isso você pode utilizar uma function. Só que para fazer o bind com function, você precisa de alguns macetes. Fiz um post sobre “Como fazer Binding em Functions corretamente?”, leia para entender melhor. Agora, para o seu caso, acho que isso resolve:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

	<mx:Script>
		<![CDATA[
			private function retornaTexto(valor:Object):String
			{
				if (valor == null)
				{
					return "Você não selecionou nada!";
				}
				else
				{
					return "Você selecinou: " + valor;
				}
			}
		]]>
	</mx:Script>

	<mx:RadioButtonGroup id="radiogroup1"/>

	<mx:RadioButton label="Masculino" x="24" y="22"
		groupName="radiogroup1"/>

	<mx:RadioButton label="Feminino" x="24" y="48"
		groupName="radiogroup1"/>

	<mx:TextArea text="{radiogroup1.selectedValue}" x="24" y="78"/>

	<mx:TextInput text="{retornaTexto(radiogroup1.selectedValue)}" x="24" y="130"/>

</mx:Application>

[]s