2013-06-03 46 views
31

Ý nghĩa của cảnh báo này là gì?Ý nghĩa của thông báo cảnh báo "Không có điểm quan sát nhãn cho trường văn bản này"

Chưa có lượt xem nhãn trỏ đến lĩnh vực văn bản này với android: labelFor = "@ id/@ id/editText1" thuộc tính

Lưu ý rằng id kép (@id/@id) là một vấn đề với văn bản thông báo lỗi và không phản ánh nội dung XML (cú pháp chính xác).

+0

đã đọc bài này, nó sẽ rất hữu ích: http://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android – Nargis

Trả lời

14

Mặc dù tôi không quen với lỗi chính xác mà bạn đã đăng. Nhưng nó chắc chắn có vẻ như bạn đã làm điều gì đó sai với id trong textView. Sử dụng id như sau trong textView của bạn.

android:id="@+id/editText1" 

Và nếu bạn muốn thiết lập labelFor sau đó sử dụng:

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

lỗi này sẽ hiển thị trong XML nếu bạn chỉ cần kéo "Văn bản nhiều dòng" vào bố cục. –

+5

Bạn không nên có dấu cộng trong id "labelFor". Nó phải là: android: labelFor = "@ id/editText1" Dấu cộng chỉ được sử dụng một lần để tạo id. – wholladay

+0

@wholladay có, nhưng điều đó sẽ không có vấn đề ở đây. + sẽ thêm id nếu không tồn tại. vẫn thx cho đề xuất – stinepike

2

Di thứ đầu tiên '@ id /', sử dụng như

android: id = "@ + id/editText1 "

đó là định dạng đúng. Hãy tiếp tục .. Lời chúc tốt đẹp nhất .. :)

18

labelFor là một thuộc tính cho các tùy chọn trợ năng. Bạn gán điều này cho một nhãn để nếu, trên một biểu mẫu, người dùng nhấp vào một trường văn bản, android có thể biết những gì để đọc (TalkBack) cho người dùng.

Id bạn chỉ định cho nó có vẻ không hợp lệ. tại sao có hai số @id trong id? Sử dụng id như thế này: @id/editText1

+1

Cảm ơn. Đây là câu trả lời duy nhất thực sự giải thích “labelFor” là gì và tại sao chúng ta nên thêm nó. – Intrications

+0

http://stackoverflow.com/questions/24731137/difference-between-androidid-and-androidlabelfor chứa thông tin bổ sung. –

1

Chọn EditText, đi đến Thuộc tính, sau đó Label cho và nhập @ id/EditText1

+0

nó không có ý nghĩa với tôi, nhưng điều này thực sự làm việc !! Nice và ez cách để thoát khỏi một cảnh báo. –

17

Tôi đã có thông điệp cảnh báo tương tự. Nó biến mất, khi tôi thêm gợi ý vào EditText

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

Đối với bất kỳ ai tìm kiếm ký tự nhật thực, tại đây nó là '…'. –

+0

@DavidChen Bạn không muốn viết "dấu ba chấm" thay vì "nhật thực"? –

+0

@ BartisÁron đẹp bắt - yup bạn là chính xác. –

0

Nếu XML chính xác và bạn đang ở chế độ Bố cục đồ họa thì có thể sử dụng phiên bản sau của bố cục hiển thị Android không hỗ trợ EditText .

Trong Eclipse và Android Studio, phải có biểu tượng Android màu xanh lục với phiên bản API nào đang hiển thị bố cục. Đảm bảo bạn đang sử dụng API không phải W hoặc Wearable vì API Android W không hỗ trợ phần tử EditText. (EditText có nhiều khả năng không được hỗ trợ vì không gian bàn phím ảo bị hạn chế trên các thiết bị đó).

Bản xem trước được hiển thị phải hỗ trợ EditText trong bất kỳ phiên bản API 4.X nào không có dấu gạch ngang W.

1

Tôi giải quyết nó bằng cách viết cả hai thuộc tính:

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

6

Nó có nghĩa là bạn có lẽ nên xác định một nhãn cho chỉnh sửa văn bản này và liên kết chúng sử dụng một labelFor bên trong nhãn định nghĩa.

mã ví dụ:

<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" /> 

và nó không chỉ đối với quan điểm văn bản.

Các vấn đề liên quan