AndroidX官方支持两个Fragment之间相互传值

首先是google官方的文档链接

跳转链接如下: 

在 Fragment 之间传递数据  |  Android 开发者  |  Android Developershttps://developer.android.google.cn/training/basics/fragments/pass-data-between支持同级别Fragment之间和父子级别Fragment之间的相互传值

注意,需要引入相关依赖

implementation ‘androidx.fragment:fragment:1.3.0-alpha04’

同级别Fragment直接传递数据

传输数据的fragment (假设按钮的点击事件跳转到另一个fragment)

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Bundle bundle = new Bundle();
        bundle.putString("key", "value");
        getParentFragmentManager().setFragmentResult("resultKey", bundle);
        }
});

接收数据的fragment(使用getParentFragmentManager)

getParentFragmentManager().setFragmentResultListener("requestKey", this, new FragmentResultListener() {
        @Override
        public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle bundle) {
            String result = bundle.getString("bundleKey");
        }
    });

父子级别的fragment之间相互传值

传输数据的fragment(和上面同级别的fragment之间传值一样)

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Bundle bundle = new Bundle();
        bundle.putString("key", "value");
        getParentFragmentManager().setFragmentResult("resultKey", bundle);
        }
});

接收数据的fragment(使用getChildFragmentManager)

getChildFragmentManager().setFragmentResultListener("requestKey", this, new FragmentResultListener() {
        @Override
        public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle bundle) {
            // 通过key获取里面对应的值value
            String result = bundle.getString("bundleKey");            
        }
    });

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值