E se você, pegar a string digitada, der um split por palavra e pesquisar cada palavra com o contains?
Pega a string da busca, separa num array de string com a função split : {"chaves", "amarelo"}
Depois um foreach nesse array fazendo o contains enquanto for verdadeiro, se o resultado de uma dos itens for falso você dá return false.
Atende esses casos que você exemplificou
Pega a string da busca, separa num array de string com a função split : {"chaves", "amarelo"}
Depois um foreach nesse array fazendo o contains enquanto for verdadeiro, se o resultado de uma dos itens for falso você dá return false.
Atende esses casos que você exemplificou
Atenciosamente,
Diego Rocha
Diego Rocha
Em qui, 7 de mai de 2015 às 15:31, Cleber - Android Developer <clebaori@gmail.com> escreveu:
-- Não, pois o contains pega apenas o trecho exato do filtro, no meu exemplo se digitar "cadeado chaves" não vai achar nenhum registro, porem se digitar "chaves amarelo" ele acha o registro "cadeado latão 30mm c/03 chaves amarelo".--Em 7 de maio de 2015 12:25, Thiago M. de França <undeadthiago@gmail.com> escreveu:o contains não resolve?2015-05-07 11:53 GMT-03:00 Cleber - Android Developer <clebaori@gmail.com>:Só para complementar.Fiz um função que tem um for para ler registro por registro da List/Array. Para cada registro eu tenho que verificar se aquele registro bate com o filtro, se der positivo eu coloco em outra List/Array para ser retornada para que o usuário possa visualizar a sua pesquisa.@luciofm, não, a ordem das palavras não são importantes.--Em 7 de maio de 2015 11:26, luciofm <luciofm@gmail.com> escreveu:A ordem das palavras importa???--On Thu, May 7, 2015 at 11:25 AM Cleber - Android Developer <clebaori@gmail.com> wrote:--Bom dia,Gostaria da ajuda para resolver um problema, suponhamos que tenho um List ou Array de Strings com o seguintes registros.
- abridor de garrafa
- caixa com cadeado azul
- cadeado latão 30mm c/03 chaves amarelo
- chave de fenda 100mm
- jogo de cadeado c/02 chaves
- pano limpa pia
- torneira jardim
Eu preciso implementar um filtro para que quando eu digitar apenas "cade chav", retornar o seguintes registros.
- cadeado latão 30mm c/03 chaves
- jogo de cadeado c/02 chaves
Eu tentei utilizar a expressão regular "(cade|chav)+" ele filtra os seguintes produtos
- caixa com cadeado azul
- cadeado latão 30mm c/03 chaves amarelo
- chave de fenda 100mm
- jogo de cadeado c/02 chaves
os itens em vermelho não deve aparecer.outra coisa que deve ser levada em consideração o usuário poderá digitar apenas "cadeado" ou "cad latão chaves" ou azul. até ai eu sei que terei que montar a expressão dinamicamente pelo que o usuário digitar.Se houver outra forma de resolver sem expressão regular também será vem vinda.Abraço
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
All it takes is one bad day to reduce the sanest man alive to lunacy.
That's how far the world is from where i am.
Just one bad day!--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário