android 从Activity跳转到fragment执行onActivityResult最简单的解决方法

在开发android中,有些人往往很疑惑,当一个FragmentActivity中有多个Fragment的时候,如a,b,c三个Fragment(碎片),
其中b中进行了操作,跳转到了新的D界面activity)。但是当D操作完后,返回值到b Fragment(碎片)。

那么问题就来了,肯定会有人问,b是一个Fragment(碎片),如何才能接收到D传过来的值呢?

解决方法非常简单:

1、现在b fragment 中添加 onActivityResult 方法,如下:

复制代码
 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.i("Test1","-----------requestCode="+requestCode);
        Log.i("Test1","-----------resultCode="+resultCode);
        switch (resultCode){
            case 1://在这里获取你需要的数据
                Toast.makeText(getContext(),"提交意见反馈成功",Toast.LENGTH_LONG).show();
                break;
            case 2:
                break;
        }

    }
复制代码

2、在b fragment 跳转到 D Activity 执行如下方法:

startActivityForResult(new Intent(getContext(), FeedbackActivity.class),1);

3、D activity 跳转到 b fragment 执行如下代码:

 setResult(1);
 finish();

 4. 数据从activity 传到 fragment 如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
   //发送方   
    Intent intent = new Intent(SearchActivity.this,HomeActivity.class);
 
    Bundle bundle = new Bundle();
    bundle.putSerializable("myquota", quota);
    intent.putExtras(bundle);
    startActivity(intent);
 
  //activity 代码
   Bundle bundle = getIntent().getExtras();
    Quota quota = null;
    if (bundle != null) {
        quota = (Quota) bundle.getSerializable("myquota");
    }
 
    mFragments = new ArrayList<>();
 
    HomeFragment homeFragment = HomeFragment.newInstance(quota);
 
  //fragment 代码
 private static Quota dataQuota;
 
 public static HomeFragment newInstance(Quota quota) {
    dataQuota = quota;
    return new HomeFragment();
}

  

 

posted @   大空白纸  阅读(957)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2014-10-08 asp.net发送邮件
点击右上角即可分享
微信分享提示