【发布时间】:2012-10-23 20:40:28
【问题描述】:
如果我知道资源的名称,我如何返回资源的 ID?
类似这样的:
String mDrawableName = "myappicon";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
【问题讨论】:
标签: c# mono xamarin.android mvvmcross
如果我知道资源的名称,我如何返回资源的 ID?
类似这样的:
String mDrawableName = "myappicon";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
【问题讨论】:
标签: c# mono xamarin.android mvvmcross
在 MonoDroid 中,该代码转换为:
var resourceId = Resources.GetIdentifier(mDrawableName.ToLower(), "drawable", PackageName);
但是,我个人不使用 GetIdentifier,因为它不推荐在 Android 中使用 - 所以我改用反射:
var resourceId = (int)typeof(Resource.Drawable).GetField(mDrawable).GetValue(null);
虽然该代码肯定应该为任意字符串添加一些 try/catch 错误检查!
【讨论】: