Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不是';Eclipse是否在nextFocusForward中接受有效的Android ID?_Android_Xml_Eclipse_Android Layout - Fatal编程技术网

为什么不是';Eclipse是否在nextFocusForward中接受有效的Android ID?

为什么不是';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=

我在RelativeLayout中有一些EditText视图。第一个窗口正确接收焦点,但当用户单击键盘上的“Finished”时,它通常不会将焦点发送到用户期望的视图。假设“Finished”按钮使用了
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