2013-06-03 11 views
31

Qual è il significato di questo avviso?Significato di "No label views point to this text field" messaggio di avviso

Nessuna vista di etichette puntano a questo campo di testo con un androide: labelFor = "@ id/@ id/editText1" attributo

Nota che il doppio id (@id/@id) è un problema con il testo del messaggio di errore e non riflette il contenuto XML (che è la sintassi corretta).

+0

leggere questo post, sarà utile: http://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android – Nargis

risposta

14

Anche se non ho familiarità con l'errore esatto che hai postato. Ma sembra che tu abbia fatto qualcosa di sbagliato con l'id nello textView. Usa id come segue nel tuo textView.

android:id="@+id/editText1" 

E se si desidera impostare labelFor quindi utilizzare:

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

questo errore mostrerà in XML, se devi semplicemente trascinare un "Testo multilinea" in un layout. –

+5

Non dovresti avere il segno più nell'ID "labelFor". Dovrebbe essere: android: labelFor = "@ id/editText1" Il segno più è usato una sola volta per generare l'id. – wholladay

+0

@wholladay sì, ma non sarà un problema qui. + aggiungerà id se non esiste. ancora per il suggerimento – stinepike

2

Rimuovere esimo primo '@ id /', utilizzare come

android: id = "@ + id/editText1 "

quale è il formato corretto. Continua .. I migliori auguri .. :)

18

Il labelFor è un attributo per le opzioni di accessibilità. Assegnali a un'etichetta in modo che se su un modulo l'utente fa clic su un campo textedit, Android può sapere cosa leggere (TalkBack) all'utente.

L'ID che gli è stato assegnato non sembra valido. perché ci sono due @id nell'ID? Utilizzare gli ID come questo: @id/editText1

+1

Grazie. Questa è l'unica risposta che spiega effettivamente cosa fa "labelFor" e perché dovremmo aggiungerlo. – Intrications

+0

http://stackoverflow.com/questions/24731137/difference-between-androidid-and-androidlabelfor contiene informazioni aggiuntive. –

1

Selezionare il EditText, andare a Proprietà, quindi Etichetta per e inserire @ id/EditText1

+0

non ha senso per me, ma in realtà ha funzionato !! Modo simpatico ed ez per sbarazzarsi di un avvertimento. –

17

ho avuto lo stesso messaggio di avviso. E 'scomparso, quando ho aggiunto un suggerimento al mio EditText

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

Per chiunque cerchi il carattere di eclissi, qui è '...'. –

+0

@DavidChen Non volevi scrivere "ellissi" invece di "eclissi"? –

+0

@ BartisÁron nice catch - yup hai ragione. –

0

Se l'XML è corretto e si è in una modalità di layout grafico, allora è probabilmente utilizzando una versione successiva del layout di rendere Android che non supporta EditText .

In Eclipse e Android Studio dovrebbe esserci un'icona Android verde con quale versione dell'API sta visualizzando il layout. Assicurati di utilizzare un'API non W o Wearable poiché le API W Android non supportano l'elemento EditText. (EditText è molto probabilmente non supportato perché lo spazio della tastiera virtuale è limitato su quei dispositivi).

L'anteprima renderizzata dovrebbe supportare EditText in qualsiasi versione di API 4.X senza un file finale.

1

ho risolto scrivendo entrambi gli attributi:

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

6

Significa che probabilmente dovreste definire un'etichetta per questo modificare il testo e collegarli utilizzando un labelFor all'interno che le etichette di definizione.

codice di esempio:

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

e non è solo per le viste di testo.