www whatwg what spec language español 3wc android xml-attribute editbox

whatwg - Diferencia entre android: id y android: labelFor?



whatwg español (4)

Escribo un diseño simple que tiene y EditText, pero muestra el siguiente mensaje de advertencia,

"Ninguna vista de etiqueta apunta a este campo de texto"

Mientras buscaba, obtuve this y también resolví ese mensaje de advertencia. Pero no obtuvo diferencia entre los dos atributos android:id y android:labelFor . Cualquier aclaración!


android: id

Proporcione un nombre de identificador para esta vista, para luego recuperarla con View.findViewById() o Activity.findViewById() . Esto debe ser una referencia de recursos; por lo general, se configura utilizando la sintaxis @ + para crear nuevos recursos de ID. Por ejemplo: android: id = "@ + id / my_id" que le permite recuperar más tarde la vista con findViewById(R.id.my_id) .

Debe ser una referencia a otro recurso, en la forma "@[+][package:]type:name" o a un atributo de tema en la forma "? [Paquete:] [tipo:] nombre".

Esto corresponde al id del símbolo del recurso de atributo global.

Android: labelFor

public static final int label Para

Especifica la identificación de una vista para la cual esta vista sirve como etiqueta para fines de accesibilidad. Por ejemplo, un TextView antes de EditText en la UI generalmente especifica qué información está contenida en EditText. Por lo tanto, TextView es una etiqueta para el EditText.

Debe ser un valor entero, como "100".

Esto también puede ser una referencia a un recurso (en la forma "@ [paquete:] tipo: nombre") o atributo de tema (en la forma "? [Paquete:] [tipo:] nombre") que contiene un valor de este tipo .

Valor constante: 16843718 (0x010103c6)

ACTUALIZAR:

Por ejemplo -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_height="wrap_content" android:orientation="vertical" android:layout_width="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:labelFor="@+id/edit_item_name" android:text="Item Name"/> <EditText android:id="@+id/edit_item_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Item Name"/> </LinearLayout> </LinearLayout>

Referencia: android:id y android:labelFor .


El labelFor es un atributo para las opciones de accesibilidad. Asigne esto a una etiqueta para que, si, en un formulario, el usuario hace clic en un campo EditText , Android pueda saber qué leer (TalkBack para usuarios con poca visión) para el usuario.

El id Proporcione un nombre de identificador para esta vista, para luego recuperarlo con View.findViewById() o Activity.findViewById() .


android:id define el ID de esta vista.

android:labelFor referencia al ID de otra vista.


además de todas las respuestas, si no usa archivos xml para aplicaciones, esta es una breve explicación de lo que sirve VIEW ID:

(Por cierto, en mi opinión, usar xml apesta - mi único archivo xml es manifiesto: D generado por gradle)

@IdRes - anotación para la identificación del recurso

/** define resource id for view */ @IdRes int TEXT_VIEW_ID = "111111"; /** create edit tex in code */ EditText myTextView = new EditText(Context); /** set view id */ myTextView.setID(TEXT_VIEW_ID); /** set layout params etc then attach or inflate as u wish to view hierarchy */ /** use view id to find view */ EditText etFound = (EditText) View.findViewById(TEXT_VIEW_ID);

PD. La identificación es obligatoria para conservar el estado de la vista de jerarquía cuando se usa Activity.onSaveInstanceState (paquete), por lo que si crea en el código (VIEW / WIDGET / LAYOUT, etc.), no olvide configurarlo.