我无法为这个问题找到更好的标题,所以如果可以,请随时修改。
所以这是我的问题。我决定为自己编写一个小应用程序,同时我也在努力学习Android开发。我知道为什么android:id
属性中有+
(plus)符号,因为它意味着“创建新的id资源”。但我不知道为什么Android需要将+
放在用于引用的内容中,如下所示:
此处我有两个名为StartButton
和StopButton
的按钮,因为它们是新资源,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}}。有人可以解释这种语法的必要性吗?
答案 0 :(得分:5)
这两种方式都没有关系 - 第一次引用ID只需要一个+。如果已定义ID,则无论如何都会忽略+。如果您愿意,可以在XML中的每个引用之前放置一个+,并且一切都将按预期工作。但是,这只是第一次参考时所必需的。