以下警告对话框有一个标题和四个项目(即红色,绿色,蓝色和黑色)。我想在每次选择其中一个项目时更改图标。
这是我的代码:
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 :(得分:0)
您正在设置AlertDialog
构建器的图标,但应该是AlertDialog本身。
变化:
alertDialog.setIcon(R.drawable.XxX);
为:
((AlertDialog)arg0).setIcon(R.drawable.XxX);