android listview 加载radiogroup,显示混乱的问题解决方法

问题描述:单选结果会混乱显示,如,选中123item,滑动时可能会显示到其他的item上。

解决思路:当你选中1,2,3 item时,滑动到下一页,下一页的1,2。3  item会默认显示选中效果,一个屏幕显示10个item,下一页11,12,13item会有显示效果

方法:当滑动listview时,每出现一个item,radiogroup都要清理原来的效果,

 holder.rgCallLevel.setOnCheckedChangeListener(null);
holder.rgCallLevel.clearCheck();
CallLevelInfo info = list.get(position);
if (info.getType() == 1){
holder.firstlevel.setChecked(true);
}else if (info.getType() == 2){
holder.secindlevel.setChecked(true);
}else {
holder.rgCallLevel.clearCheck();

}

holder.rgCallLevel.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub

Log.e(TAG, "onCheckedChanged: " );
switch (checkedId){
case R.id.rb_firstlevel:

group.check(R.id.rb_firstlevel);
CallLevelInfo info1 = list.get(position);
info1.setType(1);
notifyDataSetChanged();
Log.e(TAG, "onCheckedChanged 1: "+list.get(position).getNum() );

break;
case R.id.rb_secondlevel:

group.check(R.id.rb_secondlevel);
CallLevelInfo info2 = list.get(position);
info2.setType(2);
notifyDataSetChanged();
Log.e(TAG, "onCheckedChanged 2: "+list.get(position).getNum() );

break;
default:break;

}

}
});
// holder.rgCallLevel.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// RadioGroup group = (RadioGroup) v;
//
//
// }
// });
return convertView;
}



class ViewHolder {
private TextView tvSickBed;
private RadioGroup rgCallLevel;
private RadioButton firstlevel;
private RadioButton secindlevel;

public ViewHolder(View view) {
tvSickBed = (TextView) view.findViewById(R.id.tv_sickbed);
rgCallLevel = (RadioGroup) view.findViewById(R.id.rg_calllevel);

firstlevel = (RadioButton)view.findViewById(R.id.rb_firstlevel);
secindlevel = (RadioButton)view.findViewById(R.id.rb_secondlevel);
}
}

转载于:https://www.cnblogs.com/renjiemei1225/p/7516081.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值