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

时间:2013-06-03 11:51:59

标签: android android-lint

这个警告是什么意思?

  

没有标签视图指向带有android:labelFor =“@的文本字段   id / @ id / editText1“attribute

请注意,double id(@id/@id)是一个问题,错误消息文本,并不反映XML内容(这是正确的语法)。

8 个答案:

答案 0 :(得分:19)

labelFor是辅助功能选项的属性。您将此分配给标签,以便在表单上,​​用户单击textedit字段时,android可以知道要向用户阅读什么内容(TalkBack)。

您分配给它的ID似乎不是有效的。为什么id中有两个@id?使用这样的ID:@id/editText1

答案 1 :(得分:18)

我收到了同样的警告信息。当我向EditText添加提示

时,它消失了
android:hint="Some explanation about the input..."

答案 2 :(得分:14)

虽然我不熟悉您发布的确切错误。但肯定听起来你在textView中的id做错了。在textView中使用ID如下所示。

android:id="@+id/editText1"

如果您想设置labelFor,请使用:

   android:labelFor="@+id/editText1"

答案 3 :(得分: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" />

它不仅适用于文本视图。

答案 4 :(得分:2)

删除第一个'@ id /',使用类似

  

机器人:ID = “@ + ID / editText1”

这是正确的格式。继续......祝福...... :)

答案 5 :(得分:2)

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

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

答案 6 :(得分:1)

选择 editText ,转到属性,然后标签并输入 @ id / EditText1

答案 7 :(得分:0)

如果XML看起来正确并且你处于图形布局模式,那么它可能会使用不支持EditText的Android渲染布局的更高版本。

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

渲染预览应该支持任何API 4.X版本中的EditText,而不需要尾随W。