在BRVAH中出现RadioGroup错乱复用和LIstView中错乱复用解决方法

1首先说一BRVAH 中RadioGroup 出现点几一条直接下拉出现多个选中的情况

        解决方法如下

         

  //获取到你得到RadioGroup
        RadioGroup radioButton = helper.getView(R.id.redioFroup);
        //为获取到你得到RadioGroup中小圆点,点击的时候的监听方法进行一个制空
        /*
        * setOnCheckedChangeListener 底层其实还是走了setCheckedId(@IdRes int id) 此方法
        *   @IdRes是什么我也不知道
        *   但可以看出你的checked 其实就是你RadioGroup 中的id
        * */
        radioButton.setOnCheckedChangeListener(null);
        //为你的Bean中的checked 进行判断 并把id的值给到他们身上
        radioButton.clearCheck();
        //  item是我Bean对象中的 你可以在  Bean 中声明   int checked;
            switch (item.checked){

                case 1:
                    radioButton.check(R.id.shang);
                    break;
                case 2:
                    radioButton.check(R.id.next);
                    break;

            }

            //方法是从上往下走的 到这边真正的进行监听
        radioButton.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                    //为他们附上自己的标记   以防标记错乱所以不能给一样的标记
                switch (checkedId){
                    case R.id.shang:
                        item.checked=1;
                        break;
                    case R.id.next:
                        item.checked=2;
                        break;
                }
            }
        });

2ListView

 //取消监听器,防止RadioGroup显示混乱 关键代码 holder.mRadioGroup.setOnCheckedChangeListener(null); 
    switch (itemBean.checked) { 
case 1: holder.mRadioGroup.check(R.id.item_deal_setting_radioBtn1); 
            break; 
case 2: holder.mRadioGroup.check(R.id.item_deal_setting_radioBtn2);
             break;
 case 3: holder.mRadioGroup.check(R.id.item_deal_setting_radioBtn3);
 break;
 default: holder.mRadioGroup.clearCheck(); 
break; 
} 
holder.mRadioGroup.setId(position);
 holder.mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){ @Override public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { DealSettingBean bean = mData.get(group.getId()); switch (checkedId) { 
case R.id.item_deal_setting_radioBtn1: 
bean.checked = 1;
 break; 
case R.id.item_deal_setting_radioBtn2:
 bean.checked = 2;
 break; 
case R.id.item_deal_setting_radioBtn3:
 bean.checked = 3; 
break; 
} 
} });

猜你喜欢

转载自blog.csdn.net/qq_42046338/article/details/81917065
今日推荐