android的Bundle

本文详细介绍了Bundle在Android开发中的应用,包括如何使用Bundle进行Activity间和线程间的数据传递。文章涵盖Bundle的基本概念、继承关系、常用方法以及在不同场景下的具体实现步骤,旨在帮助开发者熟练掌握Bundle的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近发现原来我对Bundle不太理解所以查看API小小总结了bundle的使用方法

Bundle继承

java.lang.Object
  android.os.Bundle
可以实现接口
 
  implements 
  Parcelable, 
  Cloneable
 

Bundle主要用于传递数据;它保存的数据,是以key-value(键值对)的形式存在的。

Bundle经常使用在Activity之间或者线程间传递数据,传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组,也可以是对象或对象数组。

当Bundle传递的是对象或对象数组时,必须实现Serializable 或Parcelable接口。

Bundle提供了各种常用类型的putXxx()/getXxx()方法,用于读写基本类型的数据。(各种方法可以查看API)

在activity间传递信息

Bundle bundle = new Bundle();  //得到bundle对象
bundle.putString("sff", "value值");  //key-"sff",通过key得到value-"value值"(String型)
bundle.putInt("iff", 175);  //key-"iff",value-175
intent.putExtras(bundle); //通过intent将bundle传到另个Activity 
  
startActivity(intent);

读取数据


Bundle bundle = this.getIntent().getExtras(); //读取intent的数据给bundle对象   
    
String str1 = bundle.getString("sff"); //通过key得到value   
int int1 = bundle.getInt("iff"); 

线程间传递

通过Handler将带有dundle数据的message放入消息队列,其他线程就可以从队列中得到数据

<pre name="code" class="java">Message message=new Message();//new一个Message对象   
message.what = MESSAGE_WHAT_2;//给消息做标记
Bundle bundle = new Bundle(); //得到Bundle对象  
bundle.putString("text1","消息传递参数的例子!");  //往Bundle中存放数据  
bundle.putInt("text2",44);  //往Bundle中put数据  
message.setData(bundle);//mes利用Bundle传递数据
mHandler.sendMessage(message);//Handler将消息放入消息队列

 读取数据 

这里用的是Handler的handleMessage(Message msg)方法处理数据

String str1=msg.getData().getString("text1");
int int1=msg.getData().getString("text2");






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值