我已经阅读了大部分Android文档,但我还没有找到任何声明,说明" @ + id"的ID值前缀是什么手段。我知道" @ string"这意味着变化,但不是" +"的变化。除了给我答案之外,你能告诉我Android文档在哪里记录了吗?
答案 0 :(得分:42)
加号只表示如果ID不存在则应该创建。
通常的做法是在布局中定义新视图时使用@+id/foo
,然后使用@id/foo
从布局的其他部分引用视图(例如,在RelativeLayout层次结构中)或{ {1}}从代码中引用它。
答案 1 :(得分:3)
这是将Android XML布局元素链接到Java代码的语法。因此,如果我想在TextView中显示文本,我必须这样做。
第一步 - 定义布局
<TextView
android:id="@+id/SaveResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SaveResult"
android:layout_x="16px"
android:layout_y="190px"
>
</TextView>
然后,在代码中,我使用@ + id将布局链接到变量。可以将@ + id视为数据库中的外键。
TextView lblSaveResult = (TextView)findViewById(R.id.SaveResult);
现在,它已经可以使用了。当我分配文本时,它使用@ + id来查看放置它的位置,以及颜色,大小等。
lblSaveResult.setText("This text is now on the screen");
很抱歉,但我不知道文档的位置......
答案 2 :(得分:2)
当您从XML引用任何资源对象时,需要使用at符号(@)。接下来是资源类型(在本例中为id)。
仅当您第一次定义资源ID时才需要资源类型之前的加号(+)。编译应用程序时,SDK工具使用ID名称在项目的gen / R.java文件中创建一个引用UI元素的新资源ID。使用此方式声明资源ID后,对ID的其他引用不需要加号。仅在指定新资源ID时才需要使用加号,而对于字符串或布局等具体资源则不需要。
答案 3 :(得分:0)
加号表示您正在创建一个不存在的新ID。例如&#34; @ + ID / XYZ&#34; 。如果你写&#34; @ id / xyz&#34; ,它表示您正在从布局的另一部分引用视图。