我可以在Java中使用点表示法中的变量吗?

我可以在Java中使用点表示法中的变量吗?,java,android,variables,for-loop,Java,Android,Variables,For Loop,我目前正在编写我的第一个Android应用程序,希望使用for循环将项目添加到视图中。这是由Java完成的: for (int i = 1; i < 27; i++){ items.add(new Item("Wallpaper " + i, R.drawable.wallpaper1)); } 等等 提前谢谢 Tafelbomber不,你不能这样做,看看你是否还想用字符串通过这种方式访问。更好的方法是使用数组: private i

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

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

提前谢谢
Tafelbomber

不,你不能这样做,看看你是否还想用
字符串通过这种方式访问。更好的方法是使用数组:

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]));
}
private int[]ids=new int[]{R.drawable.wallper1,R.drawable.wallper2,R.drawable.wallper3}
对于(int i=1;i<27;i++){
项目。添加(新项目(“壁纸”+i,ID[i]);
}
您可以通过以下方式使用:

for (int i=0; i < 27; i++) {
    items.add(new Item("Wallpaper " + i, getResources().getIdentifier("wallpaper" + i, "drawable", getPackageName()));
}
for(int i=0;i<27;i++){
添加(新项目(“墙纸”+i,getResources().getIdentifier(“墙纸”+i,“可绘制”,getPackageName()));
}

例如,
getIdentifier(“墙纸”+20,“drawable”,getPackageName())
将解析为
com.yourapp.R.drawable.drawable20

对不起,我真的不明白……数组对我有什么帮助?哇,非常感谢!与其硬编码应用程序包,不如使用
getContext()之类的东西.getPackageName()
。这样,即使代码位于多个应用程序共享的库中,它也能正常工作。
for (int i=0; i < 27; i++) {
    items.add(new Item("Wallpaper " + i, getResources().getIdentifier("wallpaper" + i, "drawable", getPackageName()));
}