2012-12-20 397 views
-1

我在比較字符串,如果全部相同,則必須顯示對話框「ALL ARE EQUAL」,否則顯示另一個對話框「NOT EQUAL」。我只想在警報對話框中使用確定按鈕。而我的代碼:沒有顯示Android警報對話框

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

} 
+2

它進入方法showA()嗎? –

+1

什麼是logcat錯誤?!似乎ShowA()nver運行 –

+0

@ShreyaShah號.. – DroidLearner

回答

10

如果沒有方法裏面去,我覺得你的字符串可能是「YES」或「是」。

爲什麼你不嘗試它如下所示?

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

yea ..我的字符串是'是'。現在我改變了它。謝謝 – DroidLearner

+0

Downvoter。你能評論嗎? –

4

好像你的字符串s1,s2,s3 &s s4是在不確定的情況下,最好使用equalsIgnoreCase象下面這樣:

s1.equalsIgnoreCase( 「是」)

代替

s1.equals(「yes」)

3
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(); 
} 

你需要這樣的東西。

+0

是的我在字符串中犯了一個錯誤:D現在它的工作 – DroidLearner

1

你的代碼工作得很好。 只要確保您的字符串等於yes區分大小寫。

+0

已檢查!它的工作:) – DroidLearner

0

首先你要檢查s1,s2,s3,s4的值然後進行比較。

你的代碼是正確的。

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

} 

不要放兩次相同的代碼,只要創建一個方法並傳遞你需要的參數即可。