2013-06-03 2 views
31

В чем смысл этого предупреждения?Смысл понятия «Без обозначений этикетки указывает на это текстовое поле» предупреждение

Нет просмотров этикетки не указывают на это текстовое поле с андроида: labelFor = "@ идентификатор/@ идентификатор/editText1" атрибут

Обратите внимание, что двойной идентификатор (@id/@id) проблема с текст сообщения об ошибке и не отражает содержимое XML (что является правильным синтаксисом).

+0

Прочитайте этот пост, это будет полезно: http://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android – Nargis

ответ

14

Хотя я не знаком с точной ошибкой, которую вы опубликовали. Но это определенно звучит так, будто вы сделали что-то не так с идентификатором в textView. Используйте идентификатор, как показано ниже, в вашем textView.

android:id="@+id/editText1" 

И если вы хотите установить labelFor затем использовать:

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

эта ошибка будет отображаться в формате XML, если вы просто перетаскиваете «Многострочный текст» в макет. –

+5

Вы не должны иметь знак плюса в идентификаторе «labelFor». Это должно быть: android: labelFor = "@ id/editText1" Знак плюса используется только один раз для генерации идентификатора. – wholladay

+0

@wholladay да, но это не проблема здесь. + добавит id, если не существует. еще thx для предложения – stinepike

2

Удалить й первый '@ ид /', используйте как

андроида: ид = "@ + идентификатор/editText1 "

который является правильным форматом. Продолжайте .. С наилучшими пожеланиями .. :)

18

labelFor является атрибутом для параметров доступности. Вы назначаете это метке, чтобы, если в форме пользователь нажимает поле textedit, андроид может знать, что читать (TalkBack) для пользователя.

Идентификатор, присвоенный ему, кажется, не является допустимым. почему есть два @id в id? Используйте идентификаторы, как это: @id/editText1

+1

Спасибо. Это единственный ответ, который фактически объясняет, что делает «labelFor» и почему мы должны его добавлять. – Intrications

+0

http://stackoverflow.com/questions/24731137/difference-between-androidid-and-androidlabelfor содержит дополнительную информацию. –

1

Выберите EditText, перейдите Свойства, затем Этикетка для и введите @ ид/EditText1

+0

Мне это не имеет смысла, но это действительно сработало !! Nice и ez способ избавиться от предупреждения. –

17

У меня было такое же предупреждение. Он исчез, когда я добавил намек на мой EditText

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

Чтобы кто-нибудь искал символ затмения, вот он «...». –

+0

@DavidChen Разве вы не хотели писать «эллипсис» вместо «затмения»? –

+0

@ BartisÁron приятно поймать - да, вы правы. –

0

Если XML выглядит правильно, и вы находитесь в режиме графического макета, то это, вероятно, с использованием более поздней версии рендеринга макета Android, который не поддерживает EditText ,

В Eclipse и Android Studio должен быть зеленый значок Android с версией API, отображающей макет. Убедитесь, что вы используете API не W или Wearable, поскольку API Android W не поддерживает элемент EditText. (EditText, скорее всего, не поддерживается, поскольку на этих устройствах ограничено пространство виртуальной клавиатуры).

Представленный предварительный просмотр должен поддерживать EditText в любой версии API 4.X без задней W.

1

Я решил, написав и атрибуты:

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

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

, и это не только для видов текста.