我想显示5个随机骰子,6个品种。
我有代码,在1到6之间生成5个随机整数,我有5个骰子的ImageViews。他们将ID设置为:d6_image_view_1,d6_image_view_2等。在drawable文件夹中,我有d1.jpg,d2.jpg等。所以如果我想将第二张图片更改为4,我会这样做:
ImageView d6ImageView2 = (ImageView) findViewById(R.id.d6_image_view_2);
d6ImageView2.setImageResource(R.drawable.d4);
如果我有ImageView的数字和变量中的drawable怎么办?
我是否需要进行长而复杂的嵌套设置以获得正确的输出?或者我可以以某种方式将这些数字放入代码中吗?显然这不起作用:
int image = 2;
int picture = 4;
ImageView d6ImageView(image) = (ImageView) findViewById(R.id.d6_image_view_(image));
d6ImageView(image).setImageResource(R.drawable.d(picture));
答案 0 :(得分:0)
Java中没有动态变量。必须在源代码中声明Java变量。因此,解决方案可以是为可绘制资源和视图id
创建两个整数数组例如
int[] resourceIds = new int[] { R.drawable.d1, R.drawable.d2, R.drawable.d3, R.drawable.d4, R.drawable.d5, R.drawable.d6 }
int[] viewIds = new int[] { R.id.d6_image_view_1, R.id.d6_image_view_2, R.id.d6_image_view_3, R.id.d6_image_view_4, R.id.d6_image_view_5, R.id.d6_image_view_6 }
然后你可以做
int image = 2;
int picture = 4;
ImageView imgView = (ImageView) findViewById(viewIds[image]);
imgView.setImageResource(resourceIds[picture]);