只需要把状态改变监听器设置在赋值前面即可
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder mHolder = null;
if (convertView == null) {
mHolder = new Holder();
convertView = View.inflate(mContext, R.layout.lv_normal_mix_item, null);
mHolder.mtbIsOpen = (ToggleButton) convertView.findViewById(R.id.tbIsOpen);
mHolder.mtbAdjust = (ToggleButton) convertView.findViewById(R.id.tbAdjust);
convertView.setTag(mHolder);
}else {
mHolder = (Holder) convertView.getTag();
}
NormalMixBean normalMixBean = getItem(position);
//设置监听器
mHolder.mtbIsOpen.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
NormalMixBean bean = getItem(position);
bean.setIsOpen(isChecked);
update(position, bean);
}
});
//赋值
mHolder.mtbIsOpen.setChecked(normalMixBean.getOpen());
mHolder.mtbAdjust.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
NormalMixBean bean = getItem(position);
bean.setIsOpen(isChecked);
update(position, bean);
}
});
mHolder.mtbAdjust.setChecked(normalMixBean.getAdjust());
return convertView;
}
class Holder {
ToggleButton mtbIsOpen,mtbAdjust;
}