I create a list view with checkbox. I faced a problem in my list that when I select any checkbox and when I scroll down my list that checkbox became unselected itself.
Following is my code snippet:
public class HomeListAdapter extends ArrayAdapter<HashMap<String, Object> > {
boolean[] itemChecked;
//
private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();
private DisplayImageOptions options;
private CheckBox check;
public HomeListAdapter(Context context, ArrayList<HashMap<String, Object>> dataMap) {
super(context, 0, dataMap);
itemChecked = new boolean[dataMap.size()];
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.com_facebook_profile_picture_blank_square)
.showImageForEmptyUri(R.drawable.com_facebook_profile_picture_blank_square)
.showImageOnFail(R.drawable.com_facebook_profile_picture_blank_square)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.displayer(new RoundedBitmapDisplayer(20)).build();
this.notifyDataSetChanged();
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
HashMap<String, Object> dataMap = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item1, parent, false);
}
TextView description = (TextView) convertView.findViewById(R.id.description);
description.setText(dataMap.get(Home1.TAG_CNAME).toString());
TextView email = (TextView) convertView.findViewById(R.id.company);
email.setText(dataMap.get(Home1.TAG_EMAIL).toString());
check= (CheckBox) convertView.findViewById(R.id.ck);
check.setTag(getPosition(dataMap));
check.setChecked(true);
check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int getPosition = (Integer) buttonView.getTag();
}
});
if (dataMap.get(Home1.TAG_LIKE).toString().equals("true")) {
check.setChecked(true);
}else{
check.setChecked(false);
}
ImageView logo = (ImageView) convertView.findViewById(R.id.logo);
ImageLoader.getInstance().displayImage(dataMap.get(Home1.TAG_IMAGE).toString(),logo, options, animateFirstListener);
return convertView;
}