各位大佬,请教一下。我在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();
}
}