Android警报对话框未显示

时间:2012-12-20 09:03:59

标签: android android-dialog

我正在比较字符串,如果全部相等则必须显示一个对话框“ALL ARE EQUAL”,否则另一个对话框“NOT EQUAL”。我想在Alert Dialog中只使用OK按钮。我的代码:

if(s1.equals("yes") && s2.equals("yes") && s3.equals("yes") && s4.equals("yes"))
        showA();

showA()方法

的位置
private void showA() {
    AlertDialog.Builder ab = new AlertDialog.Builder(this);
    ab.setTitle("Hello!!");
    ab.setMessage("ALL ARE EQUAL");
    ab.setCancelable(false);
    ab.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

        }
    });
    AlertDialog ad = ab.create();

    ad.show();

}

6 个答案:

答案 0 :(得分:10)

如果它没有进入方法,我认为你的字符串可能是“是”或“是”。

为什么不尝试如下所示?

if(s1.equalsIgnoreCase("yes") && s2.equalsIgnoreCase("yes") && s3.equalsIgnoreCase("yes") && s4.equalsIgnoreCase("yes"))
    showA();

答案 1 :(得分:4)

似乎你的字符串s1,s2,s3 &s s4处于未定义的情况下,最好使用equalsIgnoreCase,如下所示:

  

s1.equalsIgnoreCase(“yes”)

而不是

  

s1.equals( “是”)

答案 2 :(得分:2)

if(s1.equalsIgnoreCase("yes") && s2.equalsIgnoreCase("yes") && s3.equalsIgnoreCase("yes") && s4.equalsIgnoreCase("yes"))      {
        showA();
} else {
     showB()
}

private void showA() {
    AlertDialog.Builder ab = new AlertDialog.Builder(this);
    ab.setTitle("Hello!!");
    ab.setMessage("ALL ARE EQUAL");
    ab.setCancelable(false);
    ab.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

        }
    });
    AlertDialog ad = ab.create();

    ad.show();    
}

private void showB() {
    AlertDialog.Builder ab = new AlertDialog.Builder(this);
    ab.setTitle("Hello!!");
    ab.setMessage("NOT EQUAL");
    ab.setCancelable(false);
    ab.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

        }
    });
    AlertDialog ad = ab.create();

    ad.show();   
}

你需要这样的东西。

答案 3 :(得分:1)

您的代码绝对正常。 只需确保您的字符串等于yes区分大小写。

答案 4 :(得分:0)

首先,您必须检查s1,s2,s3,s4的值,然后进行比较。

你的代码是对的。

答案 5 :(得分:0)

if(s1.equalsIgnoreCase("yes") && s2.equalsIgnoreCase("yes") && s3.equalsIgnoreCase("yes") && 

s4.equalsIgnoreCase("yes"))      {


       showAlertDialog("All ARE EQUAL");

} else {

     showAlertDialog("All ARE NOT EQUAL");
}



private void showAlertDialog(String msg){

    AlertDialog.Builder ab = new AlertDialog.Builder(this);
    ab.setTitle("Hello!!");
    ab.setMessage(msg);
    ab.setCancelable(false);
    ab.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

        }
    });
    AlertDialog ad = ab.create();

    ad.show();    

}

不要将相同的代码放两次,只需创建一个方法并传递您需要的参数。