0

以下警報對話框有一個標題和四個項目(即紅色,綠色,藍色和黑色)。每次選擇其中一個項目時,我想更改圖標。編輯咔嗒聲監聽器內的警報對話框

這裏是我的代碼:

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 
final CharSequence[] items = {"Red", "Green", "Blue", "Black"}; 

alertDialog.setTitle("Pick a color"); 

alertDialog.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() { 

    @Override 
    public void onClick(DialogInterface arg0, int num) { 
     switch(num) { 
      case 0: alertDialog.setIcon(R.drawable.red); 
      break; 

      case 1: alertDialog.setIcon(R.drawable.green); 
      break; 

      case 2: alertDialog.setIcon(R.drawable.blue); 
      break; 

      case 3: alertDialog.setIcon(R.drawable.black); 
      break; 
      } 
    } 
}); 

我可以證明的事實.setIcon()方法被調用;但是,對警報對話框的美觀沒有任何改變。實際上,即使正確的方法被執行,圖標也沒有被改變。

有人可以請解釋如何做到這一點。

回答

0

您正在設置圖標爲AlertDialog構建器,但應該爲AlertDialog本身。 變化:

alertDialog.setIcon(R.drawable.XxX); 

到:

((AlertDialog)arg0).setIcon(R.drawable.XxX); 
+0

我已經改變alertDialog到((AlertDialog)爲arg0),但這並沒有解決問題。 – androideka

+0

R.drawable.red裏面是什麼? – Leonidos

+0

R.drawable.red包含對red.png圖片的引用。這個引用是正確的,因爲alertDialog.setIcon(R.drawable.red);如果它位於alertDialog.setTitle(「Pick a color」)之後,則工作。 – androideka