为什么“加号”会在Android中引用名称中为ID资源签名

时间:2012-08-26 06:55:13

标签: android android-layout

我无法为这个问题找到更好的标题,所以如果可以,请随时修改。

所以这是我的问题。我决定为自己编写一个小应用程序,同时我也在努力学习Android开发。我知道为什么android:id属性中有+(plus)符号,因为它意味着“创建新的id资源”。但我不知道为什么Android需要将+放在用于引用的内容中,如下所示:

此处我有两个名为StartButtonStopButton的按钮,因为它们是新资源,android:id包含+

  <Button
    android:id="@+id/StartButton"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="53dp"
    android:textSize="18dp"
    android:text="Start"
    android:onClick="StartButton_OnClick" />

<Button
    android:id="@+id/StopButton"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/StartButton"
    android:layout_toRightOf="@+id/StartButton"
    android:text="Stop"
    android:textSize="18dp"
    tools:context=".CallerBlockerActivity"
    android:onClick="StopButton_OnClick" />

但为什么android:layout_alignTop包含+让我困惑,因为id/StartButton@id/StopButton到达时定义了{{1}}。有人可以解释这种语法的必要性吗?

1 个答案:

答案 0 :(得分:5)

这两种方式都没有关系 - 第一次引用ID只需要一个+。如果已定义ID,则无论如何都会忽略+。如果您愿意,可以在XML中的每个引用之前放置一个+,并且一切都将按预期工作。但是,这只是第一次参考时所必需的。