在手机App的开发中我们可以通过Intent来进行Activity之间的通信和调用,打个比喻,Intent就是连接Activity(或其他组件,如service等等)的公路,那么Bundle就是跑在这条道路上的运输车,需要传输的数据就封装在Bundle之中。
从实现上来看Bundle类是一个key-value对。
两个activity之间的通讯可以通过bundle类来实现,做法就是:
(1)新建一个bundle类
Bundle mBundle = new Bundle();
(2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value)
mBundle.putString("Data", "data from TestBundle");
(3)新建一个intent对象,并将该bundle加入这个intent对象,然后发送到另一个Activity
-
Intent intent = new Intent();
-
intent.setClass(TestBundle.this, Target.class);
-
intent.putExtras(mBundle);
-
startActivity(intent)
(4)接收方取得数据
-
Bundle bundle = getIntent().getExtras();//得到传过来的bundle
-
String data = bundle.getString("Data");//读出数据
bundle的重要方法
-
clear():清除此Bundle映射中的所有保存的数据。
-
clone():克隆当前Bundle
-
containsKey(String key):返回指定key的值
-
getString(String key):返回指定key的字符
-
hasFileDescriptors():指示是否包含任何捆绑打包文件描述符
-
isEmpty():如果这个捆绑映射为空,则返回true
-
putString(String key, String value):插入一个给定key的字符串值
-
readFromParcel(Parcel parcel):读取这个parcel的内容
-
remove(String key):移除指定key的值
-
writeToParcel(Parcel parcel, int flags):写入这个parcel的内容
-