如何在Android开发中activity之间数据传递

2024-11-30 02:51:15
推荐回答(1个)
回答1:

  android各组件之间可以使用Intent来传递数据, 这里以ActivityA向ActivityB传递数据为例

  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  
  Intent intent = new Intent(context, ActivityB.class);
  
  //如果context上下文不是Activity的话, 需要添加下面这个flag,
  if (!(context instanceof Activity)) {
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  }
  //添加要传递的数据
  //这里的key到时候ActivityB会用来得到value
  //android要求可以传递的数据类型包括基本数据类型,
  //基本数据类型的数组,CharSequence,以及实现了Parcelable的对象
  //putExtra是重载方法, 根据value的类型会适当的打包进intent的Bundle对象里
  intent.putExtra(key, value);
  //或则将数据打包进Bundle data里, 然后intent.putExtras(data);
  
  context.startActivity(intent);
  

  在ActivityB中

  1
  2
  3
  4
  5
  6
  
  public void onCreate(Bundle savedInstanceState) {
  //得到传递过来的数据
  Bundle bundle = getIntent().getExtras();
  //通过getXXX方法来获取key对应的value
  bundle.getXXX(key);
  }