Bundle是Android开发中的一个类,用于Activity之间传输数据用,Bundle就是一个专门用于导入Intent传值的包。
1.MainActivity.xml 传输数据(4步)
//设置Button点击事件,传输数据进入下一个页面
btn01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();//1.实例化一个Intent,得到Intent对象
intent.setClass(MainActivity.this, Change.class);//当前页面到下一个页面
Bundle bundle = new Bundle();//2.实例化一个Bundle,得到Bundle对象
sninfo.setSnlist(snlists);//设置数据
saomiaostr = new Gson().toJson(sninfo);//获取包裹里的内容
bundle.putString("saomiao", saomiaostr);//3.把数据保存到Bundle里
intent.putExtra("Message", bundle);//4.把Bundle放入Intent里,通过Intent将Bundle传到另一个Activity里
startActivityForResult(intent, 0);
}
});
2.Change.xml 设置接收数据(3步)
Intent intent = getIntent();//1.获取Bundle传递的对象
Bundle bundle = intent.getBundleExtra("Message");//2.从intent取出bundle
yisaosnstr = bundle.getString("saomiao");//3.找到自己的包裹
sninfo = new Gson().fromJson(yisaosnstr, Sninfo.class);//3.获得包裹里的信息
snlistList = sninfo.getSnlist();//需要什么类型找什么类型
int i = 0;
for (Snlist s : snlistList) {
i = i + 1;
sn = sn + i + ". " + s.getSku() + " : " + s.getSn() + "\n";
}
3.Change.xml 返回数据(5步)
//设置Button点击事件,返回数据进入上一个页面
confirmbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intentnew = new Intent();//1.实例化一个Intent,得到Intent对象
intentnew.setClass(Change.this, MainActivity.class);//当前页面到上一个页面
Bundle bundlenew = new Bundle();2.实例化一个Bundle,得到Bundle对象
sninfo.setSnlist(snlistList);//设置数据
String aftersaomiaostr = new Gson().toJson(sninfo);//获取包裹里的内容
bundlenew.putString("aftershanchu", aftersaomiaostr);3.把数据保存到Bundle里
intentnew.putExtra("afterxiugai", bundlenew);4.把Bundle放入Intent里,通过Intent将Bundle传到另一个Activity里
Change.this.setResult(1, intentnew);
Change.this.finish();//5.关闭页面
}
});
4.MainActivity.xml 接收返回数据(2步)
//接收返回数据
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);//1.获取包裹
switch (requestCode) {
case 0:
switch (resultCode) {
case 1://2.获取信息
Bundle bundle = data.getBundleExtra("afterxiugai");
shanchuhoustr = bundle.getString("aftershanchu");
xiugaihousninfo = new Gson().fromJson(shanchuhoustr, Sninfo.class);
}
}
}