web-dev-qa-db-fra.com

Signification du message d'avertissement "Aucune vue d'étiquette ne pointe vers ce champ de texte"

Quelle est la signification de cet avertissement?

Aucune vue d'étiquette ne pointe vers ce champ de texte avec un attribut Android: labelFor = "@ id/@ id/editText1"

Notez que le double id (@id/@id) est un problème avec le texte du message d'erreur et ne reflète pas le contenu XML (qui est la syntaxe correcte).

34
user2447702

labelFor est un attribut pour les options d'accessibilité. Vous attribuez cela à une étiquette de sorte que si, sur un formulaire, l'utilisateur clique sur un champ de texte, Android peut savoir quoi lire (TalkBack) à l'utilisateur.

L'identifiant que vous lui avez attribué ne semble pas être valide. pourquoi il y a deux @id dans l'id? Utilisez des identifiants comme celui-ci: @id/editText1

19

J'ai eu le même message d'avertissement. Il a disparu lorsque j'ai ajouté un indice à mon EditText

Android:hint="Some explanation about the input..."
18
user3596747

Bien que je ne connaisse pas l'erreur exacte que vous avez publiée. Mais il semble que vous ayez fait quelque chose de mal avec l'identifiant dans le textView. Utilisez id comme suit dans votre textView.

Android:id="@+id/editText1"

Et si vous voulez définir labelFor alors utilisez:

   Android:labelFor="@+id/editText1"
14
stinepike

Cela signifie que vous devriez probablement définir une étiquette pour ce texte d'édition et les lier en utilisant un labelFor à l'intérieur de cette définition d'étiquettes.

exemple de code:

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

et ce n'est pas seulement pour les vues de texte.

6
YEH

Supprimez le premier '@ id /', utilisez comme

Qui est le bon format. Continuez .. Meilleurs voeux .. :)

2
thampi joseph

Je l'ai résolu en écrivant les deux attributs:

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

2
user3245882

Sélectionnez editText, allez à Propriétés, puis Libellé pour et entrez @ id/EditText1

1
Kristina

Si le XML semble correct et que vous êtes dans un mode de disposition graphique, il utilise probablement une version ultérieure de la disposition de rendu Android qui ne prend pas en charge EditText.

Dans Eclipse et Android Studio, il devrait y avoir une icône verte Android avec la version d'API qui rend la mise en page. Assurez-vous que vous utilisez un API non W ou Wearable comme Android W ne prennent pas en charge l'élément EditText (EditText n'est probablement pas pris en charge car l'espace du clavier virtuel est limité sur ces appareils).

L'aperçu rendu doit prendre en charge EditText dans n'importe quelle version d'API 4.X sans W. de fin.

0
TALLBOY