我目前正在编写我的第一个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
答案 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]));
}