このメソッドは、あらゆる種類のリソースを文字列名でプルするのに非常に便利だと思います...
@SuppressWarnings("rawtypes")
public static int getResourceId(String name, Class resType){
try {
Class res = null;
if(resType == R.drawable.class)
res = R.drawable.class;
if(resType == R.id.class)
res = R.id.class;
if(resType == R.string.class)
res = R.string.class;
if(resType == R.raw.class)
res = R.raw.class;
Field field = res.getField(name);
int retId = field.getInt(null);
return retId;
}
catch (Exception e) {
// Log.d(TAG, "Failure to get drawable id.", e);
}
return 0;
}
これにより、数値IDが返されます(そのようなリソースが存在する場合)。クラスパスインR.drawable
と文字列の場合、xmlベースのID名が何であれ。
簡単にアクセスできるように、私は常にこの方法をすべてのプロジェクトにぶら下げています。