我有两个复选框,现在我想在选中两个复选框时显示一个alertdialog,如果只检查了一个,那么我不想向用户显示任何信息。
为此,我在oncreate中创建了以下代码,但在运行应用程序时没有发生任何事情。
if (Percentage.isChecked()==true && Value.isChecked()==true)
{
AlertDialog.Builder showdialog=new AlertDialog.Builder(getApplicationContext());
showdialog.setTitle("Check Alert");
showdialog.setMessage("You can't select both options");
showdialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
showdialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
showdialog.show();
}
我的方法是错误的......如果是,请以正确的方式指导我,如果代码错误,请提供更正。
感谢您的时间。
答案 0 :(得分:0)
我自己解决了...我回答这个问题,任何有相同问题的人都可以使用它。
创建一个方法来捕获代码的已检查状态:
public void showalert(){
if (Percentage.isChecked()==true && Value.isChecked()==true)
{
AlertDialog.Builder showdialog=new AlertDialog.Builder(this);
showdialog.setTitle("Check Alert");
showdialog.setMessage("You can't select both options");
showdialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Percentage.setChecked(false);
Value.setChecked(false);
}
});
showdialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Percentage.setChecked(false);
Value.setChecked(false);
}
});
showdialog.show();
}
}
现在,对于单个复选框,调用了上面创建的方法中的方法setOnCheckedChangeListener
。
Percentage.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
showalert();
}
});
Value.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
showalert();
}
});