选中多个复选框时无法显示警告对话框

时间:2014-03-26 14:52:16

标签: android android-alertdialog android-checkbox

我有两个复选框,现在我想在选中两个复选框时显示一个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();
        }

我的方法是错误的......如果是,请以正确的方式指导我,如果代码错误,请提供更正。

感谢您的时间。

1 个答案:

答案 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();

            }
        });