Bundle经常与Intent一起用,在两个Activity间传递数据。个人目前的理解就是,如果Intent传递的数据只有一个,那么就直接用Intent的putExtra()方法直接放进参数即可。那如果Intent需要传递的是好几个参数,或者是一个类,那么这时候就需要用到Bundle
Bundle bundle = new Bundle();
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
//设置数据
String name="zhangSan";
String num="88888";
//把数据保存到Bundle里
bundle.putString("name", name);
bundle.putString("num",num);
//把bundle放入intent里
intent.putExtra("Message",bundle);
startActivity(intent);
People people=new people();//People类
//设置数据
String Name="zhangSan";
String Num="88888";
people.setName(Name);
people.setNum(Num);
// 实例化一个Bundle
Bundle bundle = new Bundle();
// 把people数据放入到bundle中
bundle.putSerializable("people",people);
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
intent.putExtras(bundle);
startActivity(intent);
在用Bundle传递出去数据之后,那如何解析出来呢?
Intent intent=getIntent();
// 实例化一个Bundle
Bundle bundle=intent.getExtras();
String name=bundle.getString("name");
String num=bundle.getString("num");
Intent intent=getIntent();
// 实例化一个Bundle
Bundle bundle=intent.getExtras();
//获取里面的people里面的数据
People people= (people) bundle.getSerializable("people");
String name=people.getName();
String num=people.getNum();