我是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
在应用中启动时,它会显示Activity
值String
,其中应显示name
。
实际上,我希望代码能够以现在的方式执行,但我无法理解为什么。
提前致谢!
答案 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中传递的值。