如何获取与Android / Xamarin中的字符串匹配的ID名称。
例如,如果我有string="name"
;我想在Resource.Designer中找到与该名称匹配的id,例如:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/name"/>
我尝试使用getResources().getIdentifier
,但它总是返回null。
答案 0 :(得分:1)
如果您想获取字符串资源的ID,则需要使用Resources.GetIdentifier()
:
<强> EX:强>
var applicationNameId = Resources.GetIdentifier("ApplicationName", "string", this.PackageName);
这将获得ApplicationName
文件中strings.xml
项的资源ID。
<string name="ApplicationName">AppName</string>
换句话说,我应该能够获取此标识符,并在我的Resource.Designer.cs
中搜索相同的int
。
如果您想获取视图+id/
名称的标识符,可以改为执行以下操作:
<强> EX:强>
var buttonNameId = Resources.GetIdentifier("MyButton", "id", this.PackageName);
哪个会获得ID为Button
的{{1}}的资源ID:
MyButton
然而,根据文档,这是不鼓励的,因为它比通过ID而不是名称获取资源要慢得多。
注意:不鼓励使用此功能。按标识符检索资源比按名称检索资源要高效得多。
答案 1 :(得分:-1)
试试这个
var resourceId = (int)typeof(Resource.Id).GetField("name").GetValue(null);