由于Android没有session,那么如何在不同的Activity之间传递数据呢?可以通过Bundle实现,其功能相当于web中的session.
下面贴出使用的关键代码:
Activity发送端:
//创建一个新的Intent对象,并指定class
Intent intent =new Intent();
intent.setClass(Demo03_10.this, Demo03_10_1.class); //从Demo03_10这个类转到Demo03_10_1.class
//实例化Bundle对象,用于数据传递
Bundle bundle =new Bundle();
bundle.putDouble("height", height); //数据键值对
bundle.putString("sex", sex); //数据键值对
//将bundle对象绑定到intent
intent.putExtras(bundle); //将Bundle绑定到Intent,通过putExtras函数实现
startActivity(intent); //启动新的Activity
Activity接收端:
//取得Intent对象中的数据
Bundle bundle = this.getIntent().getExtras(); //通过getIntent().getExtras()实现
String sex = bundle.getString("sex"); //之前传值定义的类型和接受变量类型要一致
double height = bundle.getDouble("height");
//下面就可以使用传过来的变量继续后续逻辑
总结:Bundle主要通过Intent在不同的Activity来传递和接收数据。