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() 方法这一事实;但是,警报对话框的美感没有任何变化。实际上,即使执行了正确的方法,图标也不会被更改。

有人可以解释一下如何做到这一点。

4

1 回答 1

0

您正在将图标设置为生成AlertDialog器,但应该设置为 AlertDialog 本身。改变:

alertDialog.setIcon(R.drawable.XxX);

至:

((AlertDialog)arg0).setIcon(R.drawable.XxX);
于 2013-04-08T21:20:17.407 回答