Android初学之Bundle

在前面的博文中提到了Parcel和Parcelable,今天就介绍一下Bundle。


Bundle的api文档介绍是这样的: A mapping from String values to various Parcelable types。就是说,这是一个从字符串到不同类型的Parcelable类型数据的映射的Map集合。

其内部,包含三大部分:
1)Bundle EMPTY;
2)Map< String , Object > mMap;
3)其他的一些标识或者字符串以及成员

除了集合具备的函数操作,如getXXXX(),putXXXX()外,Bundle还支持将parcel数据进行去包裹化,以及一些重要的获取集合特征的函数以及集合操作的函数,如getSize和remove之类的函数。

由于,Bundle是存储的是值类型时Parcelable或者是基本的数据类型,所以它也是用来传输数据的。


Bundle的两种常见用法:

1)与Intent结合:

数据的发送(从Activity到OtherActivity)

    Bundle bundle = new Bundle();
    bundle.putInt("sex", sex);
    bundle.putString("height", height);
    Intent intent = new Intent(Activity.this,OtherActivity.class);
    intent.putExtras(bundle);
    startActivity(intent);

数据的接受:

Bundle bundle = this.getIntent().getExtras();
String sex = bundle.getString("sex");
double height = bundle.getDouble("height");


----------
与Message结合:

Message msg = myHandler.obtainMessage();
Bundle b = new Bundle();
b.putInt(“age” , 23);
b.putString(“name” , “son”);
msg.setData(b);
msg.sendToTarget();

class MyHandler extends Handler{
public void handleMessage(Message msg){
Bundle b = msg.getData();
int age = b.getInt(“age”);
String name = b.getString(“name”);
}
}
“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值