>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Loop em uma ListView


Boa Noite!!

Tenho a seguinte situação, uma listView populada onde tenho 3 colunas, uma é "pergunta", a segunda é um checkbox para o usuario setar, e terceira é o checkbox que ele deveria ter setado.

O terceiro, que é como se fosse a Resposta, eu carreguei do banco de dados, e no adapter que criei fui setando, porém, esta resposta teria que ficar oculta para o usuário, para que no fim ele clicasse em um botão e apareceria a coluna com as respostas.

Deixei o item no layout como Invisible de default e quando clicar no botão Salvar eu queria dar um Visible nele.

Fiz somente assim:


public void salvarCategoria(View v){

CheckBox cb = (CheckBox) findViewById(R.id.ckRespostaCerta);

cb.setVisibility(v.VISIBLE);

}


porém desta forma, ele esta colocando visible, somente o primeiro item da ListView.

Existe alguma forma de fazer um Loop, nesta ListView, já populada, não quero mecher nos dados dela.... e setar os itens de cada linha como VISIBLE ??


Obrigado pela atenção



3 Respostas


Bruno

Você está usando um Adapater proprio?

Caso não, a solução é essa.

Com isso recomendo a vídeo do curso de Android Best Practices, da parte de DAO, onde é visto como criar um adapter personalizado.




Olá....

Eu criei um novo adapter mas com herança de SimpleCursorAdapter... consigo popular a listview normalmente e até trato ela no linha a linha no getView.. .a situação é que coloquei um checkbox de um lado no qual o cliente seta.. e do outro depois que ele apertar um botão abaixo apareceria qual ele deveria ter setado.

Outra coisa que preciso também e não estou conseguindo, é no set do checkbox, pegar o valor do _id da linha e fazer um update no banco, não sei como coloco um evento pra cada linha que ele setar, se eu pegasse já resolveria meu problema pq ai era só carregar dinovo e tratar no getview.

Rafael, já fiz o seu curso de Best Practies, maravilhoso... revi a parte do DAO e vi que realmente é até mais "lindo" trabalhar com DAO... porém neste projeto ja comecei usando a "gambiarra" dos insert if not exists... e tal... pra passar tudo teria que começar o projeto dinovo....


Obrigado pela ajuda.




Opa

A dúvida é mais pegar cada elemento?

Faz assim:

Cria um onclick para o checkBox e chame um método, pelo onclick certo?

No lugar em que você disse que trata cada loop de cada registro, recupere o checkbox, e chame o método setTag.

Neste cara você pode por um valor, um incremento, mais precisamente o seu _id. A cada loop ele vai por o id diferente em cada setTag.

Ai dentro do onClick, que é quando você clica em um checkbox, você teoricamente recebe ele de volta, e chama o getTag pegando o id.

O que acha?