更改了资源的值

时间:2012-09-26 12:45:31

标签: android layout

我是Android新手。我的活动的一部分包含

TextView message = (TextView) findViewById(R.id.show_message);
Intent intent = getIntent();
String name = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
message.setText(name);

MainActivity是之前调用当前活动的活动。此外,上述活动的布局文件是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView  
    android:id="@+id/show_message" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:layout_width="wrap_content">

</TextView>

<Button
    android:id="@+id/button_back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/show_message"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="17dp"
    android:onClick="goBack"
    android:text="Go Back to Activity Lifecycle" />

我知道message.setText(name)String的{​​{1}}值设置为name,但为什么它也会更改message?当show_message在应用中启动时,它会显示ActivityString,其中应显示name

实际上,我希望代码能够以现在的方式执行,但我无法理解为什么。

提前致谢!

1 个答案:

答案 0 :(得分:1)

String name的值不是由message.setText设置的,而是由接收到的意图中的StringExtra设置(启动活动)

TextView message指向TextView R.id.show_message

因此message.setText("anything")会将show_message的文本值设置为“any”

message.setText(name)将show_message的文本设置为String name表示的任何内容...这里是intent中传递的值。