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