如何从变量访问可绘制对象以将图标设置为警报对话框

How to access drawable from variable to set icon to an alert dialog

我想从一个变量更改我的警报对话框图标。其实我有 :

AlertDialog.Builder alert = new AlertDialog.Builder( this); 
alert.setTitle("Level"+(OEDPrefs.level_number()));
alert.setIcon(R.drawable.icon);

但 "icon" 总是一样的。我希望它根据级别编号进行更改。 我想做类似的事情:

num = OEDPrefs.level_number();
icon_var = "icon"+num;

AlertDialog.Builder alert = new AlertDialog.Builder( this); 
alert.setTitle("Level"+(OEDPrefs.level_number()));
alert.setIcon(R.drawable.icon_var);

可能吗?谢谢

为不同级别使用一组图标。转到数组的特定元素,您将收到特定级别的图标的 id

int[] icons = {R.drawable.icon1,R.drawable.icon2 ... };

获得 i 级图标

int icon = icons[i];

像这样的东西应该可以工作:

num = OEDPrefs.level_number();
icon_var = "icon"+num;

int id = getResources().getIdentifier(icon_var , "drawable", context.getPackageName());

AlertDialog.Builder alert = new AlertDialog.Builder( this); 
alert.setTitle("Level"+(OEDPrefs.level_number()));
alert.setIcon(id);