Pergunta

Criei uma atividade que possui uma visualização de lista expansível de categoria e algumas delas como subcategoria.Todos eles precisam ser verificáveis.Usei para subcategoria, um checkTextView.Para categoria, usei um textView e um checkbox, pois quando clicamos no nome da categoria, precisamos expandi-la (afinal, é uma visualização de lista expansível!).Para a seleção, a visualização da lista está no "Modo de Múltipla Escolha".O adaptador como a lista de itens verificados, e na visualização getchild/getgroup (), defino a caixa de seleção (ou a visualização de texto verificada) para o estado fornecido pelo sparsebooleanarray (da visualização de lista).Para cada caixa de seleção eu faço:

holder.checkbox.setOnCheckedChangeListener(new checkListener(groupPosition));

então, quando marquei uma caixa de seleção, sei em que posição ela está no listview.

Mas tenho muitos problemas com essas implementações (a posição dada não é boa, etc).Eu uso o método de exibição de lista expansível para obter a posição da lista plana, mas suspeito que a exibição de lista expansível não seja realmente compatível com o modo de escolha ou seleção ...

Isto está certo ?Alguém já teve dificuldade em fazer um projeto semelhante funcionar?

Foi útil?

Solução

Encontrei um post que diz que as duas vias são incompatíveis, mas não lembro onde.

Eu mantenho a maneira que encontrei, associando uma matriz booleana para grupos e uma matriz booleana bidimensional para filhos, e cada clique em um grupo ou filho mudará o associado booleano para a posição.

É um pouco pesado, mas funciona e podemos fazer o que quisermos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top