Android中Intent之是数据的传递

两个Activity中互相传递数据的方法如下:

一.简单数据的传递
  1. 传递单个:可以直接通过调用Intent的putExtra()方法存入数据,然后在获得Intent后调用getXxxExtra获得 对应类型的数据;
  2. 传递多个:可以使用Bundle对象作为容器,通过调用Bundle的putXxx先将数据 存储到Bundle中,然后调用Intent的putExtras()方法将Bundle存入Intent中,然后获得 Intent以后, 调用getExtras()获得Bundle容器,然后调用其getXXX获取对应的数据!
    在这里插入图片描述
二.传递数组

存数据

 Intent evalIntent = new Intent(MyOrderFragment.this.getContext(), OrderEval.class);
 Bundle bd = new Bundle();
 String[] strArray = new String[]{"a","b"};
 bd.putStringArray("strArray",strArray);
 evalIntent.putExtras(bd);
 startActivity(evalIntent);

取数据

 Bundle bd = getIntent().getExtras();
 String[] strArr = bd.getStringArray("strArray");
 Log.i(TAG, "onCreate: "+strArr[0]);
三. 传递集合
1.List<基本数据类型或String>

存数据

intent.putStringArrayListExtra(name, value)
intent.putIntegerArrayListExtra(name, value)

取数据

intent.getStringArrayListExtra(name)
intent.getIntegerArrayListExtra(name)
2. Map<String, Object>,或List<Map<String,Object>>

存数据

 List<Map<String,Object>> list = new ArrayList<>();
 Map<String,Object> map = new HashMap<>();
 map.put("sku_id",sku_id);
 map.put("goods_nums",num);
 list.add(map);
 Intent intent = new Intent(GoodDetail.this,GoodOrder.class);
 Bundle bundle = new Bundle();
 ArrayList bundleList = new ArrayList();
 bundleList.add(list);
 bundle.putParcelableArrayList("list",bundleList);
 intent.putExtras(bundle);
 startActivity(intent);           

取数据

 //接收从上个页面传过来的参数
 Bundle bundle = getIntent().getExtras();
 ArrayList list = bundle.getParcelableArrayList("list");
List<Map<String,Object>> goods = (List<Map<String,Object>>)list.get(0)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值