触摸时如何选中复选框

时间:2013-02-22 18:07:46

标签: java android

我有一个触摸时切换状态的复选框。我想知道如何忽略触摸状态开关。我有一个onClickListener附加到复选框,其中我用“是”或“否”按钮更改状态。

        if(sog.isChecked()){
                sog.setChecked(false);
        } else {
                sog.setChecked(true);
        }

编辑:触摸时复选框正在切换,我的是按钮也在改变状态。

编辑2:我希望我的对话框能够改变状态而不是复选框来改变状态。

编辑3:

        sog.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            showDialog(3);

        }
    });

builder.setTitle("Checkbox")
        .setMessage(
                "Are you sure you want to switch checkbox?")
                .setPositiveButton("Yes",
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int id) {
                        if(sog.isChecked()){
                            sog.setChecked(false);
                        } else {
                            sog.setChecked(true);
                            setTotalTime();
                        }
                    }
                })
                .setNegativeButton("No",
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int id) {
                        dialog.cancel();
                    }
                });
        AlertDialog alert = builder.create();
        return alert;

1 个答案:

答案 0 :(得分:1)

  

我只想添加一个关于从开/关更改它的构造。

通过OnCheckedChangeListener实施在CheckBox上注册的setOnCheckedChangeListener()。在onCheckedChanged()中,如果CheckBox的状态是您想要进一步确认的状态,单独留下CheckBox 并弹出对话框。如果用户点击对话框中的一个按钮,指示他们不想进行更改,则手动将CheckBox的已检查状态恢复为其先前值。

话虽如此,我同意Waza_Be的评论。我不是“立即弹出确认对话框”的各种场景的粉丝,虽然偶尔它们是必要的。如果在此UI中有一些其他类型的确认步骤(例如,“保存”操作栏项目),并且您希望在该点显示确认对话框,那就更好了,恕我直言。