Android: 为什么textView的text属性值是id?

Android: Why textView text attribute value is 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" ?还有别的用处吗?

<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 的价值 在你的 activity class

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

您在布局中使用的 ID,您在此处用于引用它。您正在使用 R.id.label 因为 android 有一个

auto generated R.class

所有对象、字符串引用、资产、布局、颜色、样式和 ID(其中大部分是最终静态的)等都有唯一的十六进制代码的文件。所以你告诉

R.id.label (it's a resource ID of type int)

转到R class -> Id -> 变量名

为您的文本视图设置值

tv.setText("Hello World");

如果在布局文件中使用

android:text="@+id/label"

它只是把要设置到textview的text的值设置为@+id/label。这实际上没有意义,除非你想显示 @+id/label ..

如果你的计划是在你的布局文件中将textview的值设置为label那么就像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