well... saiba q um "dataprovider contendo objects" é bem parecido com um arrayCollection =D
Bem, presumo q vc está iniciando agora e é normal ter algumas dúvidas. Dataprovider é um atributo dos componentes list-based (baseados em listas, como datagrid, list, tileList, combobox, etc...) Em um dataprovider vc pode ligar Arrays e ArrayCollections. Já esses (array e arrayCollections) são TIPOS de dados, tratam-se de estruturas. ArrayCollection não é uma coleção de arrays. Poderia ser, mas não obrigatoriamente muito menos "semanticamente". ArrayCollection é uma estrutura de dados mais elaborada que o Array nativo do AS3. Além do mais, existe uma questão importante também (e acho q pouca gente sabe) é q os componentes do flex possuem uma "Default property" (propriedade padrão). Isso significa q se vc não especifiar qual propriedade a ser usada no componente, o componente vai atribuir os valores a default property dele, e adivinha qual a default property da combo: dataprovider! Ou seja, mesmo q vc não especificasse o <mx:dataprovider>, sem vc saber, o dataprovider já estava sendo usado. =D Bem, para não estender muito o assunto recomendo a leitura: Usando dataproviders: http://www.adobe.com/devnet/flex/quickstart/using_data_providers/ Usando um Array como dataprovider para um Tree: http://blog.flexexamples.com/2007/12/03/using-an-array-as-a-data-provider-in-a-flex-tree-control/ E, pesquise no google por "Flex dataprovider" ... vc vai achar muuuita coisa. Um abraço, bom estudos. 2009/2/14 Bruno Carneiro <guimaraescarne...@gmail.com> > > Mário, obrigado pela sua resposta. > > Neste momento eu resolvi o problema usando um mx:dataProvider contendo > objetos, acho que ficou bem melhor do que usando arrayCollection como > eu estava fazendo. > > Só comentando, vc sugeriu usar um arrayCollection com objetos. Mesmo > que funcione eu acho que não seria legal usar pq arrayCollection como > o nome já diz, é uma coleção de arrays, então acho que fica > semanticamente estranho eu usar um arrayCollection para agrupar > objects. Por isso que eu usei o mx:dataProvider mesmo. Acho que ficou > legal. > > Muito obrigado pela ajuda, foi construtiva. > > > Portanto, me pareceu que a melhor forma de se implementar um Combo Box > com selectedValue é usando um dataprovider contendo objects com um > atributo value. Assim podemos pegar o value selecionado fazendo > this.seuComboBox.selectedItem.value . > > Se ninguém tiver mais nenhuma observação a acrescentar, acho que o > tópico está encerrado. > > > > On 14 fev, 00:38, Mário Júnior <juninho...@gmail.com> wrote: > > acontece q usar arrays dentro de array colection está bem estranho.,... > > > > tente fazer assim: (pseudo-código) > > > > <combobox id="categoria" labelField="nome"> > > <arrayCollection> > > > > <object nome="Cereais" codigo="1" /> > > <object nome="Açougue" codigo="2" /> > > <object nome="Frutas e verduras" codigo="3" /> > > ... etc.... > > > > </arrayCollection> > > </combobox> > > > > A idéia é q vc tenha um arrayCollection de Objetos, e não de arrays. E > que > > seus objetos contenham atributos q caracterize-os. > > > > 2009/2/13 Bruno Carneiro <guimaraescarne...@gmail.com> > > > > > > > > > > > > > No meu caso eu fiz assim: > > > > > <mx:ComboBox x="95" y="82" width="125" id="categoria"> > > > <mx:ArrayCollection> > > > <mx:Array> > > > <mx:String>Cereais</mx:String> > > > <mx:Number>0</mx:Number> > > > </mx:Array> > > > <mx:Array> > > > <mx:String>Açougue</mx:String> > > > <mx:Number>1</mx:Number> > > > </mx:Array> > > > <mx:Array> > > > <mx:String>Frutas e Verduras</mx:String> > > > <mx:Number>2</mx:Number> > > > </mx:Array> > > > </mx:ArrayCollection> > > > </mx:ComboBox> > > > > > O problema é que agora no label do combobox aparece assim "Cereais,0" > > > "Açougue,1" etc... > > > > > Eu não consigo separar. Eu achei uma propriedade labelField e > > > dataField mas não consegui usar com meu array collection, mesmo lendo > > > a documentação no site da Adobe. > > > > > On 13 fev, 17:39, Bruno Carneiro <guimaraescarne...@gmail.com> wrote: > > > > Alberto, muito obrigado. > > > > > > Essa sua dica funciona. Mas no meu caso atualmente eu tenho um array > > > > collection, e futuramente eu vou ler do banco. > > > > > > Então, como no seu caso vc tem uma coleção de objetos, nos objetos vc > > > > pode colocar a propriedade que vc quiser. No meu caso eu tenho que > ver > > > > como fazer. > > > > > > De qualquer forma, eu vou precisar lidar com isso quando eu importar > > > > os dados do banco... eu ainda não aprendi a fazer isso. > > > > > > On 13 fev, 18:09, "Alberto" <alberto.ferre...@tan.com.br> wrote: > > > > > > > Tente assim. > > > > > > > <mx:ComboBox id="cbCategoria" selectedIndex="1"> > > > > > <mx:dataProvider> > > > > > <mx:Object data="" label="Cahaceiro"/> > > > > > <mx:Object data="-1" label="Cervejeiro"/> > > > > > <mx:Object data="0" label="Não toma nada"/> > > > > > </mx:dataProvider> > > > > > </mx:ComboBox> > > > > > > > cbCategoria.selectedItem.data > > > > -- > > Mário Júnior > > Programador Java / Adobe Flexhttp://blog.mariojunior.com > > > -- Mário Júnior Programador Java / Adobe Flex http://blog.mariojunior.com --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---