Android: "@+id/" 和 "@+id/"
Android: "@+id/" and "@+id/"
根据this线程,我需要第一次使用@+id/
来创建资源。
但是,如果我忘记了该资源之前已创建并使用 @+id/
重新创建了怎么办?我有一些输入并为仍未声明的元素设置 nextFocusDown
。
<EditText
...
android:nextFocusDown="@+id/myinput2"/>
下面 200 行我用 @+id
创建了这个元素,因为我忘了它已经声明了。
<EditText
...
android:id="@+id/myinput2"/>
它是这样工作的,但它会引起问题吗?
It works like this but can it cause an issue?
不,不能。始终使用 @+id/
。到现在为止,Android 构建环境已经足够聪明,可以解决这个问题。
如果将具有相同 id
的两个元素放在同一个 layout
文件中,它会生成 IDE 错误(红色下划线)并且您将无法编译.
一些快速定义:
@+id/foo
表示 "use the id foo
, and create it if it doesn't exist"
@id/foo
表示"use the id foo
"(如果idfoo
不存在会报错)
以前,有理由更喜欢 @id
而不是 @+id
(如果您试图通过不存在的 ID 引用视图,系统会告诉您),但现在系统足够聪明,即使写 android:layout_below="@+id/idthatdoesntexistanywhere"
也会被标记为错误:
所以总是使用@+id
。
根据this线程,我需要第一次使用@+id/
来创建资源。
但是,如果我忘记了该资源之前已创建并使用 @+id/
重新创建了怎么办?我有一些输入并为仍未声明的元素设置 nextFocusDown
。
<EditText
...
android:nextFocusDown="@+id/myinput2"/>
下面 200 行我用 @+id
创建了这个元素,因为我忘了它已经声明了。
<EditText
...
android:id="@+id/myinput2"/>
它是这样工作的,但它会引起问题吗?
It works like this but can it cause an issue?
不,不能。始终使用 @+id/
。到现在为止,Android 构建环境已经足够聪明,可以解决这个问题。
如果将具有相同 id
的两个元素放在同一个 layout
文件中,它会生成 IDE 错误(红色下划线)并且您将无法编译.
一些快速定义:
@+id/foo
表示 "use the idfoo
, and create it if it doesn't exist"@id/foo
表示"use the idfoo
"(如果idfoo
不存在会报错)
以前,有理由更喜欢 @id
而不是 @+id
(如果您试图通过不存在的 ID 引用视图,系统会告诉您),但现在系统足够聪明,即使写 android:layout_below="@+id/idthatdoesntexistanywhere"
也会被标记为错误:
所以总是使用@+id
。