Bundle传递参数

bundle是在android中十分有用的一种类,我们通常用它来进行参数的传递。理解bundle可以把它当作一个Map<String,?>,所以它的本质是一个key-value键值对。其中key值为一个标识参数的String值,value即为该String对应的参数。
使用bundle传递参数会在intent、message、fragment中用到,下面就总结一下这几种情况下用bundle封装参数以及取出参数的写法。

1.intent(两个Activity的信使)使用bundle传递参数:
发送:

Bundle bundle = new Bundle(); 
bundle.putString("name" , "Lily");
bundle.putDouble("score" , 89.7);


Intent intent = new Intent();
intent.putExtras(bundle);
intent.setClass(ThisOne.this , ThatOne.class);
startActivity(intent);



接收:

Bundle bundle = this.getIntent().getExtras();
String name = bundle.getString("name");
double score = bundle.getDouble("score");

或者发送:

intent.putExtra("date", selectDate);

 接收:

Intent.getExtras().getString("date")

 
2.message(常常跟handler结合使用)使用bundle传递参数:
使用Message机制主要是为了保证线程之间操作安全,同时不需要关心具体的消息接收者,使消息本身和线程剥离开,这样就可以方便的实现定时、异步等操作。

发送:

 

Message msg = new Message();
msg.what = 0x123;
Bundle b = new Bundle();
b.putInt("age" , 20);
b.putString("name" , "Lily");
msg.setData(b);



接收:

Handler myHandler = new Handler{
   public void handleMessage(Message msg){
      Bundle b = msg.getData();
      int age = b.getInt("age");
      String name = b.getString("name");
  }
}


3.在Fragment(Activity片段)中使用Bundle传递参数
发送:

Bundle args = new Bundle();
args.putInt("","");
args.putString("","");
frament.setArguments(key, int);



接收:

Bundle args = getArguments();
String data = args.getInt(key);
String str = args.getString(key);

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值