A seleção da caixa de seleção se repete na exibição de lista
Eu tenho a seguinte implementação de um ListView personalizado preenchido usando um CursorAdapter:
private class CurAdapter extends CursorAdapter{
public CurAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
final ViewHolder holder = (ViewHolder) view.getTag();
String name = (cursor.getString(cursor.getColumnIndexOrThrow("NotificationDateFor")));
String image = cursor.getString(cursor.getColumnIndexOrThrow("imageUri"));
holder.nametext.setText(name);
setImage(image, holder.iv);
holder.chk.setOnClickListener(onchk);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = LayoutInflater.from(context).inflate(R.layout.group_list, null);
ViewHolder holder = new ViewHolder(view);
view.setTag(holder);
return view;
}
private View.OnClickListener onchk = new View.OnClickListener() {
@Override
public void onClick(View v) {
}
};
public class ViewHolder {
TextView nametext;
RoundedImageView iv;
CheckBox chk;
public ViewHolder(View view){
iv = (RoundedImageView)view.findViewById(R.id.imageView2);
nametext = (TextView) view.findViewById(R.id.textView1);
chk = (CheckBox) view.findViewById(R.id.checkBox1);
}
}
}
Estou usando um padrão Holder para evitar repetições, mas as caixas de seleção são selecionadas aleatoriamente enquanto rolar minha lista, o que sinto falta aqui?
Também quero saber como armazenar os valores das caixas de seleção clicadas no meu onClick da caixa de seleção.