onunix 2023-12-07 19:08 采纳率: 77.8%
浏览 8
已结题

请问这里怎么将B的数据传给A呢

  Intent [] intes = new Intent [2];
        intes[0] = new Intent(context, A.class);
        intes[1] = new Intent(context, B.class);
        context.startActivities(intes);

当从B返回A时,怎么将B的数据传给A呢,要启动2个,这里没法用A.startActivitiesForResult来启动B

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-07 22:07
    关注

    【以下回答由 GPT 生成】

    你可以使用startActivityForResult()方法来启动活动B,并在活动B完成后返回结果给活动A。下面是你需要做的步骤:

    1. 在活动A中,使用startActivityForResult()方法启动活动B:

      java Intent intent = new Intent(context, B.class); startActivityForResult(intent, REQUEST_CODE);

    2. 在活动B中,当完成操作后,将结果通过setResult()方法返回给活动A:

      java Intent resultIntent = new Intent(); resultIntent.putExtra("key", data); // 将要传递的数据放入Intent中 setResult(RESULT_OK, resultIntent); finish();

    3. 在活动A中,覆盖onActivityResult()方法来接收从活动B返回的结果:

      ```java @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);

      if (requestCode == REQUEST_CODE) {
          if (resultCode == RESULT_OK) {
              if (data != null) {
                  String result = data.getStringExtra("key"); // 从返回的Intent中获取数据
                  // 在这里处理从活动B返回的结果
              }
          }
      }
      

      } ```

    这样,在活动B完成后,活动A就可以接收到传递给活动B的数据了。请注意,REQUEST_CODE是一个自定义的整数,用于标识这个请求,并确保在onActivityResult()方法中正确处理对应的请求。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月8日
  • 已采纳回答 1月31日
  • 创建了问题 12月7日