2017-07-18 165 views
1

我有这样的事情参考一个属性用字符串

for (int i=0; i<dbHelper.cantidad_restaurants; i++) { 
      datos.add(new clsRestaurants(R.drawable.res_1, "Este es el Restaurant 1", "Esta es la descripcion del REstaurant 1")); 
      datos.add(new clsRestaurants(R.drawable.res_2, "Este es el Restaurant 2", "Esta es la descripcion del REstaurant 2")); 
      datos.add(new clsRestaurants(R.drawable.res_3, "Este es el Restaurant 3", "Esta es la descripcion del REstaurant 3")); 
      datos.add(new clsRestaurants(R.drawable.res_5, "Este es el Restaurant 5", "Esta es la descripcion del REstaurant 5")); 
     } 

我想,而不是写R.Drawable.Res_1我可以写类似

"R.Drawable.Res_ + i "

我所在for循环

+0

[检查此主题](https://stackoverflow.com/a/2349808/5130133) –

回答

1

你需要使用则getIdentifier并获得INT ID数

int resourceId = Activity.getResources().getIdentifier("Res_"+i, "drawable", "your.package.name"); 
+0

那么,我应该通过'resourceID',而不是R.drawable。? – Natarr

+0

是的,R.drawable。是int数字,需要传递'resourceID'而不是R.drawable。 –

+0

我收到错误... “错误:(27,42)错误:非静态方法getResources()不能从静态上下文中引用” 我的行: “int resourceId = MainActivity.getResources( ).getIdentifier(“Res _”+ i,“drawable”,“com.soft.kukito.cardviewprueba”);“我试过:“int resourceId = Activity.getResources()。getIdentifier(”Res _“+ i,”drawable“,”com.soft.kukito.cardviewprueba“);” – Natarr