为什么不是';Eclipse是否在nextFocusForward中接受有效的Android ID?
我在RelativeLayout中有一些EditText视图。第一个窗口正确接收焦点,但当用户单击键盘上的“Finished”时,它通常不会将焦点发送到用户期望的视图。假设“Finished”按钮使用了为什么不是';Eclipse是否在nextFocusForward中接受有效的Android ID?,android,xml,eclipse,android-layout,Android,Xml,Eclipse,Android Layout,我在RelativeLayout中有一些EditText视图。第一个窗口正确接收焦点,但当用户单击键盘上的“Finished”时,它通常不会将焦点发送到用户期望的视图。假设“Finished”按钮使用了FOCUS\u FORWARDID,我尝试通过使用android:nextFocusForward属性来修复此行为,如下所示: <EditText android:id="@+id/editTextName" ... android:nextFocusForward=
FOCUS\u FORWARD
ID,我尝试通过使用android:nextFocusForward
属性来修复此行为,如下所示:
<EditText
android:id="@+id/editTextName"
...
android:nextFocusForward="@id/editTextNameColour" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editTextNameColour"
...
android:nextFocusForward="@id/editTextBackgroundColour" />
<EditText
android:id="@+id/editTextBackgroundColour"
... />
它没有编译,因为Eclipse给了我一条错误消息,比如:“error:error:找不到与给定名称匹配的资源(在'nextFocusForward'处,值为'@id/editTextNameColor')”
我知道这个名字是正确的,因为我从Eclipse中的下拉列表中选择了它,并且所有文件都已保存
表示EditText
是正确的类型(查看视图)
如果有比使用android:nextFocusXxx
属性更好的方法,包括在Java代码中这样做,那也没关系
我不愿意使用线性布局解决这个问题
另外,“完成”按钮使用的是“焦点向前”按钮,对吗
谢谢
解决方案:我需要使用@+id..
而不是@id
,因为我引用的是代码后面声明的对象;键盘似乎使用了FOCUS\u DOWN
而不是FOCUS\u FORWARD
这是因为@id和@id+id。只需使用@id+id。您正在尝试在分配资源之前使用id。如果在relativeLayout中,您还可以切换声明内容的顺序。这是因为@id与@id+id。只需使用@id+id。您正在尝试在分配资源之前使用id。如果在relativeLayout中,您还可以切换声明内容的顺序。如果是顺序,那么您引用的是尚未定义的元素。你应该这样做:
<EditText
android:id="@+id/editTextName"
...
android:nextFocusForward="@+id/editTextNameColour" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editTextNameColour"
...
android:nextFocusForward="@+id/editTextBackgroundColour" />
<EditText
android:id="@+id/editTextBackgroundColour"
... />
如果这是顺序,那么您引用的是尚未定义的元素。你应该这样做:
<EditText
android:id="@+id/editTextName"
...
android:nextFocusForward="@+id/editTextNameColour" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editTextNameColour"
...
android:nextFocusForward="@+id/editTextBackgroundColour" />
<EditText
android:id="@+id/editTextBackgroundColour"
... />
谢谢!就这样。然后使用nextFocusDown
。谢谢!就这样。然后使用nextFocusDown
。