Android 为什么';"@字符串/";属性没有+;签名

Android 为什么';"@字符串/";属性没有+;签名,android,android-xml-attribute,Android,Android Xml Attribute,我知道视图的id属性中的+符号表示它是一个新的用户定义的自定义值,必须添加到R.Java文件中。但是,在下面的示例XML按钮视图属性中,@string为什么不像@+id属性那样在单词string前面有+符号 <Button android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:te

我知道视图的
id
属性中的
+
符号表示它是一个新的用户定义的自定义值,必须添加到
R.Java
文件中。但是,在下面的示例XML按钮视图属性中,
@string
为什么不像
@+id
属性那样在单词
string
前面有
+
符号

<Button android:id="@+id/my_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/my_button_text"/>

加号表示这是一个新的资源ID,
Android资产打包工具将在
类中创建一个新的资源整数,如果它还不存在的话


-在资源文件中定义。
元素的名称被用作资源ID。

在本例中,您链接的是一个现有资源(字符串)。@GabrieleMariotti但这不是一个将添加到R.Java的自定义字符串值吗?因此,这应该需要一个
+
符号,对吗?@Swifty No.字符串已经存在于资源文件中(然后在R.string.xxx中)@GabrieleMariotti您的意思是这是因为字符串资源是一个预定义的静态值,而R.Java中的id值是不稳定的,每次在Android Studio中构建和运行应用程序时都需要重新构建?