2017-07-18 140 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