通过Intent在Activity间传递数据
- 我们先在MainActivity中添加一个按钮
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.lightless.android_intent.MainActivity"
tools:ignore="MergeRootFrame" >
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout>
- 我们的目的是点击这个Button后跳转到另一个Activity中。于是乎我们就要新建一个OhterActivity类来充当另一个Acitvity。之后在这个OtherActivity的布局文件中增加一个TextView,用于显示从MainActivity跳转过来时接收到的数据。
<TextView
android:id="@+id/msg"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TextView>
- 接下来就要在MainActivity中,点击按钮时传递intent了。
button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, OtherActivity.class);
// pass data via intent
intent.putExtra("name", "Lightless");
intent.putExtra("age", 20);
intent.putExtra("address", "Beijing");
// start intent
startActivity(intent);
}
});
那个button必然是通过private Button button;
获得的。
- 在OtherActivity中接受通过intent传递过来的数据
setContentView(R.layout.other);
textview = (TextView)this.findViewById(R.id.msg);
Intent intent = getIntent();
int age = intent.getIntExtra("age", 0);
String name = intent.getStringExtra("name");
String address = intent.getStringExtra("address");
textview.setText("age: " + age + "\nname: " + name
+ "\naddress: " + address);
- 最后,不要忘记在清单文件中增加Activity的“声明”。
<activity android:name=".OtherActivity" >
</activity>