Boa noite.
Eu estava com um problema no CheckBox dentro do ListView, pois ao rolar o scroll do listview, as seleções dos checkbox’s eram desmarcadas. Pesquisei e consegui resolver esse problema. Logo, meu listview não apaga as seleções na rolagem!
O problema é que não entendi algumas funcionalidades de alguns elementos. Alguém pode me dizer o que cada parte do código faz? Quero poder, mais do que simplesmente implementar, saber/dominar tudo sobre cada componente, o que eles fazem exatamente. Segue abaixo meu código:
// Método getView do Adapter Customizado
public View getView(final int position, View view, ViewGroup parent){
if(view == null){
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.item_checkbox, null);
}
aluno = getItem(position);
TextView etNome = view.findViewById(R.id.nome);
etNome.setText(aluno.getNome());
// PARA MANTER OS CHECKBOX's SELECIONADOS QUANDO O LISTVIEW ROLA PRA CIMA/BAIXO (Para não perder a seleção)
final CheckBox checkbox = view.findViewById(R.id.checkbox);
checkbox.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
CheckBox check = (CheckBox) v;// COMO O "v" é reconhecido como o checkbox clicado?
aluno = (Aluno) check.getTag();// O que exatamente é getTag()? Pq aluno consegue receber o check.getTag()?
aluno.setCheckedAluno(check.isChecked()); // Aqui eu entendo que o "check" sendo true/false, ele seta meu aluno no meu método .setCheckedAluno (que recebe um boolean), mas vale comentários!
}
});
checkbox.setTag(aluno);// Como funciona o setTag() passando o meu aluno como parâmetro?
checkbox.setChecked(aluno.getCheckedAluno()); // Aqui eu entendo que o check que o aluno recebeu (true/false) é passando pro método ".setChecked" que exibe no meu checkbos, certo? Tbm acho que sim, mas vale comentários!
return view;
}
Por favor, comentem sem moderação, mas se não tiver certeza, não comenta pra não confundir nem a mim, nem a quem procura respostas certas como eu.
Cesde já, mt obrigada!