在哪里找到ViewID

时间:2017-11-24 18:36:22

标签: c# android xamarin xamarin.android

我正在使用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

的方式

1 个答案:

答案 0 :(得分:1)

这些资源ID由Android构建工具aapt / aapt2生成,并创建Java R文件。

回复:Accessing Resources

输出依次由MSBuild JavaResourceParser任务解析(在Xamarin.Android.Build.Tasks实用程序中)

回复:JavaResourceParser.cs