android - Resources.GetIdentifier() 为布局返回 0 (Android)

标签 android xamarin.android xamarin

我正在尝试使用 Android API 的 Resources.GetIdentifier() 按名称获取布局资源的 int 资源 ID,但它返回 0。我使用的是 c#/monodroid/Xamarin,但使用的是常规 java Android我怀疑知识也会适用。这是我的代码:

int resId = Resources.GetIdentifier(typeName, "layout", _activity.PackageName);

其中 typeName = "FrmMain",在我的项目中我有文件“Resources/Layout/FrmMain.axml”。有什么想法吗?

最佳答案

这是旧的,但对于每个遇到这个问题的人来说,我认为这是因为资源名称应该是小写的,所以:

int resId = Resources.GetIdentifier("FrmMain", "layout", _activity.PackageName);

不起作用,但是:

int resId = Resources.GetIdentifier("frmmain", nameof(Resource.Layout).ToLower(), _activity.PackageName);

应该可以

关于android - Resources.GetIdentifier() 为布局返回 0 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20354312/

相关文章:

java - CameraToMpegTest.java 不工作,以 IllegalStateException : Can't stop due to wrong state 结束

android - 使用 OpenTK 和 MonoDroid 加载 png

android - Xamarin Android SetBackgroundDrawable 已弃用但未弃用 SetBackground()

c# - Akavache 无效

java - AlarmManager 膨胀布局

android - 具有正确 xml 绑定(bind)的 livedata 变量的 2 种方式数据绑定(bind)错误

Google Play 拒绝 Android 应用

android - 在 Visual Studio 中构建 Xamarin.Android 时 GetAdditionalResourcesFromAssemblies 错误

c# - Xamarin.Forms Android 应用程序在启动时崩溃

Xamarin.UITestDeviceAgentException : Failed to install DeviceAgent