id 资源可以引用文件后面的元素吗?
这里我有两个字段,一个是用户名,另一个是密码。我为密码字段创建了一个新的 ID 资源(使用 @+id/
语法),但是用户名字段在 android:nextFocusDown
字段中找不到它。我从布局 xml 中省略了其他字段,因为它们不相关。
在这种情况下,我需要如何声明 ID?
<EditText
android:id="@+id/login_username"
android:nextFocusDown="@id/login_password" />
<EditText
android:id="@+id/login_password"
android:nextFocusUp="@id/login_username"
android:nextFocusDown="@id/login_submit" />
使用 gradle 构建时,我收到如下所示的错误:Error:(41, 32) No resource found that matches the given name (at 'nextFocusDown' with value '@id/login_password') .
我没有收到 android:nextFocusUp="@id/login_username"
字段的错误,这让我相信您必须在使用它之前声明它。
我的代码中也出现编译错误,因为没有生成 R.java
文件,很可能是因为它构建的资源也没有构建。
对于 android 中所有精美的构建工具,我很惊讶这是一个问题。这是已知问题还是期望的行为?
最佳答案
您可以在第一个值中指定一个@+id
<EditText
android:id="@+id/login_username"
android:nextFocusDown="@+id/login_password" />
<EditText
android:id="@+id/login_password"
android:nextFocusUp="@id/login_username"
android:nextFocusDown="@id/login_submit" />
拥有多个@+id 并没有什么坏处。它可能会使检测拼写错误变得更加困难,但如果您需要它,它会很好用。
关于java - Android ID资源可以转发吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26667915/