Ajuda com List

1 view
Skip to first unread message

Luis Carlos Quinhone

unread,
May 27, 2012, 8:19:02 PM5/27/12
to fle...@googlegroups.com
Ol� pessoal, preciso de algo relativamente simples, mas que estou
apanhando e n�o estou achando informa��o no google,
possivelmente por n�o saber como procurar.

Preciso verificar se o item adicionado no List j� n�o tem, se tiver ele
n�o adiciona outro.

algu�m pode me orientar?

Att

Luis Carlos

Stefan Horochovec

unread,
May 27, 2012, 9:46:36 PM5/27/12
to fle...@googlegroups.com
Ola Luis

Basta você percorrer sua lista e verificar, Se sua lista for um array, terá que testar objeto a objeto, se ela for um ArrayCollection pode usar o método "contains" e fazer sua verificação.

Abraço

Stefan Horochovec
Engenheiro de Software
Blog: http://www.horochovec.com.br/
Twitter: http://twitter.com/horochovec



Em 27 de maio de 2012 21:19, Luis Carlos Quinhone <lcqui...@gmail.com> escreveu:
Olá pessoal, preciso de algo relativamente simples, mas que estou apanhando e não estou achando informação no google,
possivelmente por não saber como procurar.

Preciso verificar se o item adicionado no List já não tem, se tiver ele não adiciona outro.

alguém pode me orientar?

Att

Luis Carlos

--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para fle...@googlegroups.com
Para sair da lista, envie um email em branco para flexdev-unsubscribe@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Brenno Abreu

unread,
May 28, 2012, 6:38:25 AM5/28/12
to fle...@googlegroups.com
Luis.

Posta ae para gente ver como você esta fazendo!

Dependendo tenho a solução.

Brenno Abreu.


> Date: Sun, 27 May 2012 20:19:02 -0400
> From: lcqui...@gmail.com
> To: fle...@googlegroups.com
> Subject: [flexdev] Ajuda com List

>
> Olá pessoal, preciso de algo relativamente simples, mas que estou
> apanhando e não estou achando informação no google,
> possivelmente por não saber como procurar.
>
> Preciso verificar se o item adicionado no List já não tem, se tiver ele
> não adiciona outro.
>
> alguém pode me orientar?
>
> Att
>
> Luis Carlos
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para fle...@googlegroups.com
> Para sair da lista, envie um email em branco para flexdev-u...@googlegroups.com

Luis Carlos Quinhone

unread,
May 28, 2012, 10:10:18 PM5/28/12
to fle...@googlegroups.com
Breno, estou fazendo da seguinte forma:

- Eu tenho uma tela de cadastro, nela eu tenho um List com um bot�o emabixo;
- Ao clicar no bot�o ele abre a tela de categoria, dou 2 click em uma e
ele transporta pra outra tela via eventos VO;
- Na tela de cadastro ele joga a categoria no List, at� aqui est� OK,
mas se eu jogo a mesma categoria ele aceita,
e isso que n�o quero, a �ltima tentativa foi usando o contains, mas
ainda n�o deu.

public function recebeAtividades(e:evtGuia_atividadeVO):void
{
guia_atividadeVO=new Guia_atividadeVO();
guia_atividadeVO.ati_id=e.GuiaAti.ati_id;
guia_atividadeVO.ati_nome=e.GuiaAti.ati_nome;

if(atividadeCollection.contains(e.GuiaAti)) // e j� testei assim:
if(atividadeCollection.contains(e.GuiaAti.ati_id))
{
Alert.show("Opss! Essa atividade j� est� atribu�da",
"Aten��o!", Alert.OK, this, null, iconAlert, Alert.OK);
}
else
{
atividadeCollection.addItem({ati_id: e.GuiaAti.ati_id,
ati_nome: e.GuiaAti.ati_nome});
}

model.ativaClickDuplo=false;
}

Att
Luis Carlos

Fernando Noronha

unread,
May 28, 2012, 10:13:43 PM5/28/12
to fle...@googlegroups.com
Voce vai ter que far um FOR ou FOREACH na lista e verificar se exite em cada item da lista.

Só não sei como vai ficar a performance disso.

--
Fernando Noronha

On May 28, 2012, at 11:10 PM, Luis Carlos Quinhone wrote:

> Breno, estou fazendo da seguinte forma:
>
> - Eu tenho uma tela de cadastro, nela eu tenho um List com um botão emabixo;
> - Ao clicar no botão ele abre a tela de categoria, dou 2 click em uma e ele transporta pra outra tela via eventos VO;
> - Na tela de cadastro ele joga a categoria no List, até aqui está OK, mas se eu jogo a mesma categoria ele aceita,
> e isso que não quero, a última tentativa foi usando o contains, mas ainda não deu.
>
> public function recebeAtividades(e:evtGuia_atividadeVO):void
> {
> guia_atividadeVO=new Guia_atividadeVO();
> guia_atividadeVO.ati_id=e.GuiaAti.ati_id;
> guia_atividadeVO.ati_nome=e.GuiaAti.ati_nome;
>
> if(atividadeCollection.contains(e.GuiaAti)) // e já testei assim: if(atividadeCollection.contains(e.GuiaAti.ati_id))
> {
> Alert.show("Opss! Essa atividade já está atribuída", "Atenção!", Alert.OK, this, null, iconAlert, Alert.OK);
> }
> else
> {
> atividadeCollection.addItem({ati_id: e.GuiaAti.ati_id, ati_nome: e.GuiaAti.ati_nome});
> }
>
> model.ativaClickDuplo=false;
> }
>
> Att
> Luis Carlos
>

Fabiano Frizzo

unread,
May 28, 2012, 10:28:28 PM5/28/12
to fle...@googlegroups.com
Sugiro o uso do Dictionary ou usar um HashMap em Flex 

A implementação de HashMap do Eric Feminella é identica ao funcionamento no java.


É uma classe extremamente pequena e ajuda bastante no flex.

Usando o HashMap indicato ficaria algo como

var map:HashMap = new HashMap();


guia_atividadeVO=new Guia_atividadeVO();
guia_atividadeVO.ati_id=e.GuiaAti.ati_id;
guia_atividadeVO.ati_nome=e.GuiaAti.ati_nome;
map.put(guia_atividadeVO.ati_id, guia_atividadeVO);


E quando vc precisa da lista de itens é só fazer um map.getValues()

Att
Fabiano Frizzo

FFrizzo Labs
(45)3324-4204
(45)9969-7850
(45)9118-7805


2012/5/28 Fernando Noronha <feno...@gmail.com>

Rafael Chagas

unread,
May 29, 2012, 3:20:54 AM5/29/12
to fle...@googlegroups.com
Olá Luiz Carlos.
Fiz um teste[1][2] e pude fazer a seguinte constatação.

A função contains só retorna positivo se o objeto que estiver dentro da lista estiver no mesmo espaço de memória do objeto passado como parâmetro.
Fiz um simples teste onde é possível verificar isso.

Na primeira comparação o objeto da lista e o passado como parametro estão no mesmo espaço de memória.
Nesse caso o retorno foi verdadeiro.

Na segunda comparação foi passado um objeto com os mesmos valores do primeiro, porém ele foi instanciado e está em um espaço de memória diferente.
Nesse caso o retorno da função foi falso.


Por enquando, ainda não tenho nada em mente uma maneira mais elegante de resolver o seu problema, a não ser utilizando um for e fazendo a comparação manualmente.

Att,
                     Rafael Chagas Barbosa
Aluno do curso Sistemas de Informação - UNIMONTES
Diretor de Projetos/Qualidade da Infobits - www.infobitsunimontes.com.br

 

Reply all
Reply to author
Forward
0 new messages