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

16

如果我知道资源的名称,我该如何返回资源的ID?

类似这样:

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

34

在MonoDroid中,该代码的翻译大致如下:

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

然而,我个人不使用GetIdentifier,因为在Android中它不被推荐使用 - 所以我使用反射代替:

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

虽然该代码应该添加一些try/catch错误检查来处理任意字符串!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接