我有一个触摸时切换状态的复选框。我想知道如何忽略触摸状态开关。我有一个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;
答案 0 :(得分:1)
我只想添加一个关于从开/关更改它的构造。
通过OnCheckedChangeListener
实施在CheckBox
上注册的setOnCheckedChangeListener()
。在onCheckedChanged()
中,如果CheckBox
的状态是您想要进一步确认的状态,单独留下CheckBox
并弹出对话框。如果用户点击对话框中的一个按钮,指示他们不想进行更改,则手动将CheckBox
的已检查状态恢复为其先前值。
话虽如此,我同意Waza_Be的评论。我不是“立即弹出确认对话框”的各种场景的粉丝,虽然偶尔它们是必要的。如果在此UI中有一些其他类型的确认步骤(例如,“保存”操作栏项目),并且您希望在该点显示确认对话框,那就更好了,恕我直言。