java - 如何在触摸时不选中复选框

标签 java android

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

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

编辑:触摸时复选框会切换,并且我的"is"按钮也会更改状态。

编辑 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;

最佳答案

I am just wanting to add a conformation on changing it from off/on.

实现一个 OnCheckedChangeListener,通过 setOnCheckedChangeListener()CheckBox 上注册。在 onCheckedChanged() 中,如果 CheckBox 的状态是您需要额外确认的状态,请单独保留 CheckBox > 并弹出对话框。如果用户点击对话框中的按钮表明他们不想进行更改,则手动将 CheckBox 的选中状态恢复为其之前的值。

话虽这么说,我同意 Waza_Be 的评论。我不喜欢“立即弹出确认对话框”之类的场景,尽管有时它们是必要的。如果此 UI 中有某种其他类型的确认步骤(例如,“保存”操作栏项目),并且您希望在此时显示确认对话框,那么恕我直言,那就更好了。

关于java - 如何在触摸时不选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15030511/

相关文章:

java - persistence.xml 未添加到耳中

java - 使用正则表达式从字符串中提取姓名和电子邮件地址

Android Studio 拒绝在我的手机上构建和安装任何应用

android - Firebase addListenerForSingleValueEvent 下载使用

android - 如何在 Android 2.2 中以编程方式删除 SD 卡的全部内容

java - 如何在 Java 配置文件中存储敏感数据?

java - Install4j - 在失败的情况下是否有任何完成阶段选项?

java - 在没有 Sherlock 的情况下移除 ActionBar 下面的阴影

java - 在 Android 应用程序中使用 JavaScript 库

android - 无法保持服务在 Android 中运行