2015-02-23 46 views
2

我有一個警告對話框,它不顯示我使用「setIcon」設置的圖標。
我使用Android Studio和Android Emulator API 19/Android 4.4.2。Android - AlertDialog中未顯示圖標

我可以運行該應用程序,對話框顯示沒有圖標,沒有錯誤。
但Android Studio標記包含「setIcon」的行,並提供給我「引入本地變量」和「使方法調用鏈進入調用序列」

所以我的問題:爲什麼圖標不顯示?

我的代碼:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 

builder 

.setMessage("Repeat game?") 
.setIcon(android.R.drawable.ic_dialog_alert)   //<--- icon does not show 
.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
     //Yes button clicked, do something 

    } 
}) 
.setNegativeButton("No", null)      //Do nothing on no 
.show(); 
+0

.setIconAttribute(android.R.attr.alertDialogIcon) – 2017-10-05 05:09:28

回答

4

你應該使用這樣的事情:

builder.setIcon(getResources().getDrawable(android.R.drawable.ic_dialog_alert)); 

試試這個:)

+0

這給了我 「無法解析方法getResources()」 – Spacewalker 2015-02-23 10:03:28

+0

context.getResources(..).. – 2015-02-23 10:04:37

0

這可能是你需要設置標題爲好。如果你不喜歡新的佈局,你可能想看看這個question

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder 
    .setMessage("Repeat game?") 
    .setTitle("") 
    .setIcon(android.R.drawable.ic_dialog_alert)   //<--- icon does not show 
    .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      //Yes button clicked, do something 
     } 
    }) 
    .setNegativeButton("No", null)      //Do nothing on no 
    .show(); 
5

您的標題是空的,所以android不會顯示它,因此也不會顯示任何圖標。

它設置爲空字符串:

builder.setTitle("")...<all the other stuff>