| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 09:02:54
|
matheusms
Thread.start()
Membro desde: 19/01/2012 08:44:17
Mensagens: 30
Offline
|
Bom dia!
Estou carregando um EditText em uma ListView, até ai tudo bem.
Quando digito alguma coisa nesse EditText e rolo a ListView, o valor digitado no EditText vai para outra posição da ListView.
Alguém poderia me ajudar a resolver isso?
Desde já agradeço!
Abraço!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 09:39:07
|
wagnerfrancisco
JavaGuru
![[Avatar]](/images/avatar/8557f7303f1355575b6e95d411c9cead.jpg)
Membro desde: 02/10/2007 10:05:02
Mensagens: 243
Localização: Criciúma / SC
Offline
|
Poste seu código para podermos ajudar.
|
http://wagnermezaroba.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 09:42:30
|
Marky.Vasconcelos
Moderador
![[Avatar]](/images/avatar/04940fadf3702cbd84b7a48161037c4f.png)
Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline
|
Quando o getView é chamado, ele pode retornar para voce uma View no "convertView", essa é uma View que já está no Layout mas está fora da area de scrollagem, então o Adapter o reaproveita para exibir um novo item.
Voce tem que sempre limpar setar estado da View no getView.
|
Facebook @MarkyHitchhiker +Mark WP: MarkyTech's
Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais
DefaultTableModel?! PARE! Não faça isso! Faça melhor!
Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)
Develop games is fantastic, with words you can make worlds!!!
DON'T PANIC!
MarkyHitchhiker's Blog! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 11:22:41
|
matheusms
Thread.start()
Membro desde: 19/01/2012 08:44:17
Mensagens: 30
Offline
|
Eis o código do meu Adapter:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 11:24:44
|
matheusms
Thread.start()
Membro desde: 19/01/2012 08:44:17
Mensagens: 30
Offline
|
Marky,
Como assim, limpar setar estado da View no getView?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 13:10:15
|
Marky.Vasconcelos
Moderador
![[Avatar]](/images/avatar/04940fadf3702cbd84b7a48161037c4f.png)
Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline
|
Voce tem que sempre limpar o estado da View e setar o novo pelo getView.
|
Facebook @MarkyHitchhiker +Mark WP: MarkyTech's
Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais
DefaultTableModel?! PARE! Não faça isso! Faça melhor!
Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)
Develop games is fantastic, with words you can make worlds!!!
DON'T PANIC!
MarkyHitchhiker's Blog! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 13:17:49
|
matheusms
Thread.start()
Membro desde: 19/01/2012 08:44:17
Mensagens: 30
Offline
|
Pode me dar um exemplo?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 20:46:18
|
wagnerfrancisco
JavaGuru
![[Avatar]](/images/avatar/8557f7303f1355575b6e95d411c9cead.jpg)
Membro desde: 02/10/2007 10:05:02
Mensagens: 243
Localização: Criciúma / SC
Offline
|
O currentView reaproveita uma View previamente utilizada por questões de performance. Portanto se você tinha um determinado valor naquela View, ao rolar a lista a View será reaproveitada e caso você não a limpe os valores antigos estarão lá. No seu código você já faz:
Mas repare que em momento algum você limpa/reatribui algum valor ao seu EditText. Ficaria algo assim:
Para uma ListView de visualização apenas (sem edição) isso já seria suficiente. Entretanto, usando elementos editáveis, acho que você vai perder o que botou no EditText caso você role a lista e depois volte pra linha anterior. Pra resolver isso, uma sugestão, é adicionar um TextWatcher nos seus EditText. Toda vez que o valor do EditText é alterado você o armazena em algum lugar. Depois no getView basta usar este valor.
Falou.
|
http://wagnermezaroba.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/01/2012 05:56:44
|
matheusms
Thread.start()
Membro desde: 19/01/2012 08:44:17
Mensagens: 30
Offline
|
Esse TextWatcher eu tenho que colocar nesta classe aqui?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/01/2012 06:31:32
|
matheusms
Thread.start()
Membro desde: 19/01/2012 08:44:17
Mensagens: 30
Offline
|
?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/01/2012 13:43:09
|
wagnerfrancisco
JavaGuru
![[Avatar]](/images/avatar/8557f7303f1355575b6e95d411c9cead.jpg)
Membro desde: 02/10/2007 10:05:02
Mensagens: 243
Localização: Criciúma / SC
Offline
|
Tem que adicionar o TextWatcher no teu EditText. Quando tu pega a referência dele, pode chamar o addTextChangedListener passando o TextWatcher. Algo assim:
Falou.
|
http://wagnermezaroba.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/01/2012 06:24:35
|
matheusms
Thread.start()
Membro desde: 19/01/2012 08:44:17
Mensagens: 30
Offline
|
Wagner,
adicionei um TextWatcher e preenchi o valor digitado em um ArrayList<String>, e depois eu tento fazer com que o EditText receba o valor do ArrayList na posição em que se encontra.
Ao fazer isso ele devia adicionar o valor na posição correta, mas ele adiciona em várias posições. Sabe o que pode ser?
Ex:
Digito o valor 2 no EditText da primeira posição da lista. Ele deveria adicionar esse valor na primeira posição da lista, mas ele adiciona em várias posições o valor 2.
Está assim meu código:
Desde já agradeço!
Abraço!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/01/2012 13:27:37
|
matheusms
Thread.start()
Membro desde: 19/01/2012 08:44:17
Mensagens: 30
Offline
|
Tentei de um jeito aqui e fico um pouco melhor, mais anda esta gravando na posição errada.
Se eu digita um valor na primeira linga do ListView ele grava na ultima posição que aparece, se eu for rolando a listview e digita um novo valor ele sempre grava na ultima posição da list view que aparece na tela.
Ficou assim meu código:
|
|
|
 |
|
|