Android: почему значение текстового атрибута textView равно id?

<TextView
    android:id="@+id/label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+id/label"
    android:textSize="20px" >
</TextView>

это часть кода ListActivity с пользовательским макетом. Таким образом, он может динамически устанавливать значение. Почему android:text="@+id/label"? Есть другое использование?

2 ответа

Решение
<TextView
    android:id="@+id/label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+id/label"   <-- wrong
    android:text="@string/label"   <-- get text from string.xml
    android:text="Label"     <-- direct text
    android:textSize="20px" >
</TextView>

Согласитесь с ответом ZeroOne. Добавляя к нему, вы сказали о динамически меняющемся значении textView внутри вашего класса активности

TextView tv = (TextView) findViewById(R.id.label);

Идентификатор, который вы использовали в макете, вы используете здесь, чтобы обратиться к нему. Ты используешь R.id.label потому что Android имеет

автогенерируемая R.class

файлы с уникальным шестнадцатеричным кодом для всех объектов, строковых ссылок, ресурсов, макетов, цветов, стилей и идентификаторов (большинство из них являются окончательными статическими) и т. д. Итак, вы говорите

R.id.label (это идентификатор ресурса типа int)

Перейти к классу R -> Id -> имя переменной

Чтобы установить значение для вашего просмотра текста

tv.setText("Hello World");

Если в вашем файле макета, если вы используете

android:text="@+id/label"

Это просто помещает значение текста, чтобы установить к textview как @+id/label, Что на самом деле не имеет смысла, если вы не хотите отображать @+id/label..

Если вы планируете установить значение textview в качестве метки в самом файле макета, то, как сказал ZeroOne, либо используйте

android:text="label"

Или же

android:text="@string/my_label" // for this to work you need to add reference in strings.xml inside your res folder
Другие вопросы по тегам