我正在使用Android应用程序。我在MainActivity.cs
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Instance = this;
SetContentView(Resource.Layout.Main);
_locationText = FindViewById<TextView>(Resource.Id.txtLocation);
RegisterService();
}
txtLocation
ResourceDesigner.cs
的定义
public partial class Id
{
// aapt resource value: 0x7f040000
public const int txtLocation = 2130968576; //where this number came from?
static Id()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Id()
{
}
}
那个ID来自哪里?
在Main.axml上,我可以看到控件已创建。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtLocation"
android:width="200dp"
android:layout_marginRight="0dp"
android:layout_gravity="right"
android:gravity="left"
android:layout_alignParentRight="true" />
但不明白android:id="@+id/txtLocation"
成为2130968576
答案 0 :(得分:1)
这些资源ID由Android构建工具aapt
/ aapt2
生成,并创建Java R
文件。
输出依次由MSBuild JavaResourceParser
任务解析(在Xamarin.Android.Build.Tasks
实用程序中)