如果我知道资源的名称,则返回资源的id

时间:2012-10-23 20:40:28

标签: c# mono xamarin.android mvvmcross

如果我知道资源的名称,我怎样才能返回资源的id?

这样的事情:

String mDrawableName = "myappicon";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());

1 个答案:

答案 0 :(得分:31)

在MonoDroid中,该代码转换为:

 var resourceId = Resources.GetIdentifier(mDrawableName.ToLower(), "drawable", PackageName);

但是,我个人不使用GetIdentifier,因为它在Android中不推荐 - 所以我改用Reflection:

 var resourceId = (int)typeof(Resource.Drawable).GetField(mDrawable).GetValue(null);

虽然该代码肯定会为任意字符串添加一些try / catch错误检查!