“无标签视图指向此文本字段”的警告消息含义

35

这个警告的意思是什么?

没有标签视图使用android:labelFor="@id/@id/editText1"属性指向此文本字段

请注意,双重id (@id/@id) 是错误信息文本中的问题,不反映XML内容(正确语法)。


阅读这篇文章,它会很有帮助:https://dev59.com/yW445IYBdhLWcg3wH2vH - Nargis
我们可以通过使用 tools:ignore="labelFor" 来忽略这个问题。 - Naveen Kumar M
8个回答

20

labelFor是辅助功能选项的属性。您将此分配给标签,以便如果在表单上用户点击文本编辑字段,则Android可以知道要读取(TalkBack)给用户的内容。

您分配的id似乎不是有效的。为什么ID中有两个@id?请使用如下的ID:@id/editText1


1
谢谢。这是唯一一个解释“labelFor”做什么以及为什么我们应该添加它的答案。 - Intrications
https://dev59.com/HmAf5IYBdhLWcg3wXhsJ 包含额外的信息。 - Soren Stoutner

18

我也遇到了同样的警告信息。当我给我的EditText添加了提示时,它消失了。

android:hint="Some explanation about the input..."

3
如果有人寻找 Eclipse 字符,它是 - Dave Chen
@DavidChen 你是不是想写“省略号”而不是“Eclipse”? - Bartis Áron

13

虽然我不熟悉你发布的确切错误,但它绝对听起来像是你在textView中做错了什么。请按以下方式使用id来使用你的textView

android:id="@+id/editText1"

如果您想设置,请使用:

Translated:

If you want to set labelFor, use:

   android:labelFor="@+id/editText1"

1
如果您只是将“多行文本”拖入布局中,此错误将显示在XML中。 - Someone Somewhere
5
"labelFor"属性中不应该包含加号。正确的写法是:android:labelFor="@id/editText1",加号只能在生成id时使用一次。请注意不改变原意,尽量保持通俗易懂。 - wholladay
@wholladay 是的,但这里不会有问题。如果不存在,将添加ID。仍然感谢您的建议。 - stinepike
2
@wholladay 如果您在创建 id 之前尝试引用它,那么这很重要。 要么您添加 +,要么重新组织 xml 元素。 - parvus

6
这意味着您可能需要为此编辑文本定义一个标签,并在该标签的定义中使用labelFor将它们链接起来。
示例代码:
<TextView
    android:id="@+id/my_textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:labelFor="@+id/my_editText" <!--the plus sign goes first in the code-->
    android:text="I'm a label" />

<EditText
    android:id="@id/my_editText" <!--no plus sign if not the first-->
    android:layout_width="wrap_content"
    android:inputType="text"
    android:layout_height="wrap_content" />

这不仅适用于文本视图。


2

删除第一个 "@id/",使用如下格式:

android:id="@+id/editText1"

这是正确的格式。继续加油.. 祝你好运.. :)


2

我通过编写以下两个属性来解决它:

android:id="@+id/editText1" android:labelFor="@+id/editText1"


1
选择editText,进入属性,然后在标签中输入@id/EditText1

这对我来说毫无意义,但它确实起作用了!这是一个不错且简单的方法来消除警告。 - Someone Somewhere

0

如果XML看起来正确,而且你在图形布局模式下,那么它可能使用了一个不支持EditText的较新版本的Android渲染布局。

在Eclipse和Android Studio中,应该有一个绿色的Android图标,显示正在呈现布局的API版本。确保你使用的是非W或可穿戴API,因为Android W API不支持EditText元素。(EditText最可能不受支持,因为这些设备上的虚拟键盘空间有限)。

渲染预览应该支持任何API 4.X版本的EditText,没有尾随的W。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接