初始化复选框选中状态会触发本身的OnCheckedChange事件?

各位大佬,请教一下。我在Adapter的getview 方法中 根据获取的值来**初始化复选框**的**选中状态**,然后**这个初始化操作就触发了复选框的onCheckedchange事件**,事件中有刷新数据的功能,然后就进入了死循环。这怎么处理啊 环境:Android studio 3.5.4

下面是初始化操作,在getview 方法中的

BmobQuery<Cai> query_state_cai=new BmobQuery<>();
        query_state_cai.addWhereEqualTo("tieZiId",tieziId).addWhereEqualTo("people",userId);
        query_state_cai.findObjects(new FindListener<Cai>() {
            @Override
            public void done(List<Cai> list, BmobException e) {
                if(e==null){
                    if(list.size()>0){
                        viewHolder.check_cai.setChecked(true);
                    }else {
                        viewHolder.check_cai.setChecked(false);
                    }
                }else {
                    Log.d("print","初始化点赞状态出错:"+e.getMessage());
                }
            }
        });

下面是复选框的事件

 @Override
    public void OnCheckChange_Cai(CompoundButton viewButton) {
        String tieziId=viewButton.getTag().toString();
        String userId;
        MyApplication myApplication=new MyApplication();

            //如果用户已登录
            if(myApplication.getLoginUser()!=null){
            userId= myApplication.getLoginUser().getUserId();

            if(viewButton.isChecked()){
                        //如果单选框被选中,执行操作
                delete_zanInfo(tieziId,userId);//删除点赞的记录
                saveCAI(tieziId,userId);//添加踩的记录
            }else {
                        //如果没选中
                delete_caiInfo(tieziId,userId);//删除踩的记录
            }
            initDatas();//重新获取ListView的数据
        }else{
            Toast.makeText(mContext,"请登录后再操作",Toast.LENGTH_SHORT).show();

        }
    }

1个回答

改成onClick时间判断是否选中就行了

问答版主就是牛,从现在起只回论坛,不在踏入问答半步

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐