Android Checkbox在取消选中时要求确认两次

Mat*_*men 1 checkbox android dialog oncheckedchanged

我的代码中有一个CheckBox,如果选中它,用户就不能取消选中它.这就是我决定在Checkbox上实现onCheckedChangeListener的原因.

如果已选中并单击,则会询问确认,否则不会询问确认.当询问确认(通过对话框)并且用户取消时,复选框必须保持(或再次设置)检查.所以我在点击取消按钮时实现了"CheckBox.setChecked(true)",现在我的确认被问了两次.我不知道怎么摆脱这个.

这是相关的代码:

    mEventAttendingCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {      
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked){
                //do nothing
            } else {
                Context mContext = EventSingleViewActivity.this;
                final Dialog dialog = new Dialog(mContext);

                dialog.setCancelable(true);

                Button confirmButton = (Button) dialog.findViewById(R.id.confirmButton);    
                confirmButton.setOnClickListener(new View.OnClickListener() { 
                    @Override
                    public void onClick(View v){ 
                        //do something
                    }
                });


                Button cancelButton = (Button) dialog.findViewById(R.id.cancelButton);  
                cancelButton.setOnClickListener(new View.OnClickListener() { 
                    @Override
                    public void onClick(View v) { 
                        dialog.dismiss();
                        mEventAttendingCheckBox.setChecked(true);
                    }
                });


                dialog.show();

            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

nge*_*esh 7

实现on CLickListener instead of onCheckChanged..因为只有当用户点击它时才调用CLick,但是即使你setChecked()在代码中说的话,也会调用OnCheckChanged ...