I have my adaptor class with getView method as follows:
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.userlist, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.text2 = (TextView) view.findViewById(R.id.stuname);
viewHolder.text = (TextView) view.findViewById(R.id.rollno);
viewHolder.checkbox = (CheckBox) view.findViewById(R.id.cb);
viewHolder.checkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Model element = (Model) viewHolder.checkbox
.getTag();
element.setSelected(buttonView.isChecked());
// Toast.makeText(getContext(), "Checked",
// Toast.LENGTH_SHORT).show();
}
});
view.setTag(viewHolder);
viewHolder.checkbox.setTag(list.get(position));
} else {
view = convertView;
((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.text.setText(list.get(position).getName());
holder.text2.setText(list.get(position).getRoll());
holder.checkbox.setChecked(list.get(position).isSelected());
return view;
}
There is an oncheckedchange listener here.
My question is how to pass the information like which list item has changed to the my main activity? Also how in the main activity can we perform some action when the checkbox state has changed?