我可以在Java中使用点符号变量吗?

时间:2014-10-30 19:04:46

标签: java android variables for-loop

我目前正在编写我的第一个Android应用程序,并希望使用for循环向View添加项目。这是由Java完成的:

for (int i = 1; i < 27; i++){
                items.add(new Item("Wallpaper " + i, R.drawable.wallpaper1));
            }

我可以使用变量&#34; i&#34;在&#34; R.drawable.wallpaper _&#34;呼叫?结果应该是这样的:

items.add(new Item("Wallpaper " + i, R.drawable.wallpaper1));
items.add(new Item("Wallpaper " + i, R.drawable.wallpaper2));
items.add(new Item("Wallpaper " + i, R.drawable.wallpaper3));

等等。

提前致谢 Tafelbomber

2 个答案:

答案 0 :(得分:3)

您可以通过以下方式使用Resources.getIdentifier(...)

for (int i=0; i < 27; i++) {
    items.add(new Item("Wallpaper " + i, getResources().getIdentifier("wallpaper" + i, "drawable", getPackageName()));
}

例如,getIdentifier("wallpaper" + 20, "drawable", getPackageName())将解析为com.yourapp.R.drawable.drawable20

答案 1 :(得分:0)

不,您不能这样做,如果您仍想使用String以这种方式访问​​,请查看here。更好的方法是使用数组:

private int[] ids = new int[] {R.drawable.wallpaper1, R.drawable.wallpaper2, R.drawable.wallpaper3}

for (int i = 1; i < 27; i++){
   items.add(new Item("Wallpaper " + i, ids[i]));
}