我的xml中有EditText
,我收到此警告
没有标签视图指向此文本字段,其中包含android:labelFor =“@ + id / @ + id / et_password”属性
我搜索过SO而且发现了这些帖子,但遗憾的是我没有找到任何解释这个警告原因的答案。
1- Meaning of "No label views point to this text field" warning message
2- EditText warning in android app development
这是我的xml代码:
<LinearLayout
android:id="@+id/ll_password"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tv_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:text="@string/tv_password" />
<EditText
android:id="@+id/et_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:background="@color/background"
android:gravity="start|center_vertical"
android:inputType="textPassword"
android:singleLine="true" />
</LinearLayout>
我不知道为什么我会收到这个警告。 到目前为止我做了什么:
1-我尝试更改EditText
ID
2-删除布局中的TextView
但警告仍然存在。
我只是想知道因为我的用户名LinearLayout
没有任何警告。
我做错了吗?我收到这个警告的原因是什么?
答案 0 :(得分:4)
我的观点有三次机会
1)可能是你对组件的id做错了。使用id
如下。
android:id="@+id/editText1"
2)你不应该在labelFor
id中加号。它应该是:android:labelFor="@id/editText1"
加号只用一次来生成id。
3)如果您只是将Multiline Text
拖到布局中,则会在XML中显示此错误。
请参阅this
答案 1 :(得分:4)
只想为Anoop的答案添加一些解释。为了解决这个问题,我刚将这一行添加到我的TextView
:
android:labelFor="@id/et_password"
它与EditText的id无关。
与id的+符号无关。
这是最终的xml代码:
<LinearLayout
android:id="@+id/ll_password"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tv_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:labelFor="@id/et_password"
android:text="@string/tv_password" />
<EditText
android:id="@+id/et_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:background="@color/background"
android:gravity="start|center_vertical"
android:inputType="textPassword"
android:singleLine="true" />
</LinearLayout>