Listview having multiple checkboxes.I want to save checkbox checked or unchecked in shared preference to show checkbox checked when reopen the application.
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
convertView = inflator.inflate(R.layout.row, null);
viewHolder = new ViewHolder();
viewHolder.text = (TextView) convertView.findViewById(R.id.label);
viewHolder.checkbox = (CheckBox) convertView
.findViewById(R.id.check);
viewHolder.textPhone = (TextView) convertView
.findViewById(R.id.phone);
viewHolder.checkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
getPosition = (Integer) buttonView.getTag();
int h = getPosition;
// savePreferences("CHECKBOX",
// viewHolder.checkbox.isChecked());
list.get(getPosition).setSelected(
buttonView.isChecked());
}
});
viewHolder.checkbox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (((CheckBox) v).isChecked()) {
ContactBean cb = list.get(getPosition);
caller_name = cb.getName();
caller_no = cb.getPhoneNo();
boolean nf = ((CheckBox) v).isChecked();
viewHolder.checkbox.setChecked(list.get(getPosition)
.isSelected());
savePreferences("CHECKBOX", ((CheckBox) v).isChecked());
blockAllCalls();
} else {
viewHolder.checkbox.setChecked(list.get(getPosition)
.isSelected());
ContactBean cb = list.get(getPosition);
caller_name = cb.getName();
caller_no = cb.getPhoneNo();
savePreferences("CHECKBOX", !((CheckBox) v).isChecked());
clearContactFromList();
}
}
});
convertView.setTag(viewHolder);
convertView.setTag(R.id.label, viewHolder.text);
convertView.setTag(R.id.phone, viewHolder.textPhone);
convertView.setTag(R.id.check, viewHolder.checkbox);
// loadSavedPreferences();
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.checkbox.setTag(position); // This line is important.
viewHolder.text.setText(list.get(position).getName());
viewHolder.textPhone.setText(list.get(position).getPhoneNo());
viewHolder.checkbox.setChecked(list.get(position).isSelected());
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(context);
boolean cbValue = sp.getBoolean("CHECKBOX", false);
// String name = sp.getString("NAME", "YourName");
if (cbValue) {
CheckBox v = viewHolder.checkbox;
boolean n = viewHolder.checkbox.isChecked();
viewHolder.checkbox.setChecked(true);
} else {
viewHolder.checkbox.setChecked(false);
}
return convertView;
}
Aucun commentaire:
Enregistrer un commentaire