GridView заполняется блоками с CheckBox-сами. Но при скорлле грида не сохраняется состояние чекбокса, делал как то так
Код: Выделить всё
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
final GalleryBlock current_block = getCurrentItem(position);
if(convertView == null){
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.gallery_block, null);
holder.holder_image = (ImageView) convertView.findViewById(R.id.iv_gallery_photo);
holder.holder_check_box = (CheckBox) convertView.findViewById(R.id.cb_publish);
convertView.setTag(holder);
}
else {
holder =( ViewHolder)convertView.getTag();
}
holder.holder_check_box.setId(position);
holder.holder_image.setId(position);
holder.holder_check_box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
setPublishStatus(isChecked, current_block.id);
} else if (!isChecked) {
setPublishStatus(isChecked, current_block.id);
}
}
});
Picasso.with(context).load(context.getResources().getString(R.string.webserverURL) + current_block.link)
.error(R.drawable.ic_warning)
.fit()
.into(holder.holder_image);
holder.holder_check_box.setChecked(current_block.published);
holder.id = position;
return convertView;
}
class ViewHolder{
CheckBox holder_check_box;
ImageView holder_image;
int id;
}