Android中Bundle传递数据和对象
16lz
2021-01-25
1.Bundle传递数据, 因为Bundle中已经封装好了简单数据类型,所以我们直接去设置数据,下面就来看看具体的操作:
case R.id.Btn_Msg: // 实例化一个Bundle Bundle bundle = new Bundle(); Intent intent=new Intent(MainActivity.this,Main2Activity.class); //设置数据 String name="admin";String num="123"; //把数据保存到Bundle里 bundle.putString("name", name); bundle.putString("num",num); //把bundle放入intent里 intent.putExtra("Message",bundle); startActivity(intent); break;
把数据放到Bundle中,然后仔使用intent去传递,下面再来看下怎么去获取的从Bundle中传递的数据:
//获取数据 Intent intent = getIntent(); //从intent取出bundle Bundle bundle = intent.getBundleExtra("Message"); //获取数据 String name = bundle.getString("name"); String num = bundle.getString("num"); //显示数据 text_show.setText(name + "\n" + num);
2,Bundle传递对象,如果我们想要传递一个复杂的数据类型就会用到Bundle中的方法Serizlizable
在这里我们要把数据转成Serizlizable对象,然后在进行相应的操作
如这样的一个对象:
public class Persion implements Serializable { private String name; private String num; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNum() { return num; } public void setNum(String num) { this.num = num; }}
具体操作如下,这边把数据设置写死了,,开始传递对象
case R.id.Btn_Obj: Persion persion=new Persion(); //设置数据 String Name="zhangsan";String Num="111111"; persion.setName(Name); persion.setNum(Num); // 实例化一个Bundle Bundle bundle1 = new Bundle(); // 把Persion数据放入到bundle中 bundle1.putSerializable("persion",persion); Intent intent1=new Intent(MainActivity.this,Main2Activity.class); intent1.putExtras(bundle1); startActivity(intent1); break;
同理我也是把对象放到Bundle中,然后在使用Intent进行传递,下面看看我们怎么获取Bundle传递的对象:
Intent intent=getIntent(); // 实例化一个Bundle Bundle bundle=intent.getExtras(); //获取里面的Persion里面的数据 Persion persion= (Persion) bundle.getSerializable("persion"); text_show.setText("姓名:"+persion.getName()+"\n"+"号码:"+persion.getNum());
总结一下,在使用Bundle传递对象的时候,我先让Persion类实现Serializable接口,然后用putSerializable(String key,Serializble value)来存储数据,接收数据的时候再Serializanle getSerizlizble(String key)来取出数据,,道理都很简单!只是需要一步一步的去解决,,,,做人和写代码一样,都是需要一步一步脚踏实地的去做,没有什么一步登天。。。
更多相关文章
- “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
- Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- android模拟器接收不到UDP数据包解决方法
- android,java知识点总结(一)
- Android-Activity介绍
- android数据库操作:根据过滤条件获取部分通讯录信息
- Android(安卓)Parcelable 错误 Parcel: Class not found when un
- Android(安卓)MediaPlayer