传递数据
- 新建 Activity
在项目中右键,选择 New,继续选择中下方的 Activity,最后是 Blank Activity。
此时 Android Studio 会为我们自动添加一个对应的布局文件,为布局文件中的 TextView 添加 ID,以便后续使用。
- 用Intent 发送数据
在主布局文件中新建一个 Button 控件,并在主类中定义它,然后为它设置 Click 的监听事件。
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Main2Activity.class);
i.putExtra("Thanks","Thank you for reading my blog.");
startActivity(i);
}
});
}
- 用 Intent 接收数据
接下来再之前创建的 Activity 中同样新建一个 Intent 进行接受即可。和发送试用的 putExtra 类似,接受也可以用 getStringExtra 。当然了,正对不同的数据类型可以用不同的方法。
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Intent i = getIntent();
tv = (TextView)findViewById(R.id.tv);
tv.setText(i.getStringExtra("Thanks"));
}
传递 Bundle 包
在两个 Activity 之间也可以用 Bundle 包来进行数据的传递,相比上一种方式,这一种可以包含更多的数据,你可以将其认为是一个集合,这也正符合“包”的概念。
新建 Bundle
Bundle 可以嵌套 Bundle
对 Intent 对象使用 putExtras 方法
@Override
protected void onCreate(Bundle savedInstanceState) {