android中bundle的使用

---------------------
作者:SJRDDS
来源:CSDN
原文:https://blog.csdn.net/yiranruyuan/article/details/78049219
版权声明:本文为博主原创文章,转载请附上博文链接!
 
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放入消息队列,其他线程就可以从队列中得到数据

 1 Message message=new Message();//new一个Message对象     
 2 
 3 message.what = MESSAGE_WHAT_2;//给消息做标记  
 4 
 5 Bundle bundle = new Bundle(); //得到Bundle对象    
 6 
 7 bundle.putString("text1","消息传递参数的例子!");  //往Bundle中存放数据    
 8 
 9 bundle.putInt("text2",44);  //往Bundle中put数据    
10 
11 message.setData(bundle);//mes利用Bundle传递数据  
12 
13 mHandler.sendMessage(message);//Handler将消息放入消息队列 

 读取数据

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

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

猜你喜欢

转载自www.cnblogs.com/KeepDoingSomething/p/9962087.html