我有一个在触摸时切换状态的复选框。我想知道如何忽略触摸状态开关。我在复选框上附加了一个 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/