两个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)