0
<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" ?还有其他用途吗?

4

2 回答 2

0

同意 ZeroOne 的回答。添加到他你说动态改变 textView 的值在你的活动类里面

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

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

自动生成R.class

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

R.id.label(这是一个 int 类型的资源 ID)

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

为您的文本视图设置值

tv.setText("Hello World");

如果在您的布局文件中,如果您使用

android:text="@+id/label"

它只是将 text 的值设置为 textview as @+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
于 2017-02-16T15:43:58.877 回答
0
<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>
于 2017-02-16T15:04:59.283 回答