基本上我正在尝试自动化
的过程mDrawable[0] = this.getResources().getDrawable(R.drawable.img0);
mDrawable[1] = this.getResources().getDrawable(R.drawable.img1);
mDrawable[2] = this.getResources().getDrawable(R.drawable.img2);
mDrawable[3] = this.getResources().getDrawable(R.drawable.img3);
mDrawable[4] = this.getResources().getDrawable(R.drawable.img4);
等。
循环:
for(int i = 0;i<=15;i++)
{
mDrawable[i] = this.getResources().getDrawable(R.drawable.**img+i**);
}
那么如何从 i 循环变量
组成这个资源名称 img4谢谢!
答案 0 :(得分:3)
我确信你想要实现this这样的例子。
当你想在循环中实现findViewById()时有很多帮助,因为有许多视图只有像“counter”varialbe 1,2,3,4,5等那样的差异。
for(int i=0; i<15; i++)
{
String imageID = "img" + (i);
int resID = getResources().getIdentifier(imageID, "drawable", getPackageName());
/* if you want to reference any widgets like Button, TextView, ImageView, etc. then write below code:
//int resID = getResources().getIdentifier(imageID, "id", getPackageName());
*/
}
答案 1 :(得分:2)
您可以使用Resources.getIdentifier()
我头顶的小片段:
for(int i = 0;i<=15;i++)
{
int id = this.getResources().getIdentifier("img"+i, "drawable", getPackageName());
mDrawable[i] = this.getResources().getDrawable(id);
}
答案 2 :(得分:0)
答案 3 :(得分:0)
为了避免使用Resource.getIndentifier()(不建议使用它),您可以生成一组id并迭代它们
int ids[] = { R.drawable.img0, R.drawable.img1, R.drawable.differentnames, R.drawable.whatever /*etc*/ };
mDrawables = new Drawable[ids.length];
for(int i = 0, s = ids.length; i < s; i++)
{
mDrawables[i] = this.getResources().getDrawable(ids[i]);
}