Fragment间的通信-获取动态Fragment对象

动态Fragment由于没有添加id,一般通信使用Activity间接操作组件,而不直接获取Fragment。
还可以通过广播方式发送信息进行操作。
但是我发现可以获取所有Fragment对象,由此产生了一种获取动态添加的Fragment的方法。

缺陷:要获取的Fragment一定要只是用过一次(一个Activity中只有一个对象)。

1.正常操作方法

https://blog.csdn.net/u012702547/article/details/49786417
不做赘述,直接介绍强行获取Fragment对象的方法。

2.获取Fragment对象

第一步.

Fragment->Activity,方法同上,略。

第二步.

	// 从所有Fragment中查找唯一的RightFragment对象,注意:要获取的Fragment一定要唯一。
    List<Fragment> fragments = fragmentManager.getFragments();
    for (Fragment f: fragments) {
    
    
        if (RightFragment.class.isInstance(f)) {
    
    
            fragmentRight = f;
            break;
        }
    }
    TextView tv_fra_right = fragmentRight.getView().findViewById(R.id.tv_fraright);
    tv_fra_right.setText(mes + "再传到RightFragment中。");
    if (fragmentRight != null) {
    
    
        tv_activity = fragmentRight.getActivity().findViewById(R.id.tv_fraright);
        LogUtil.d("FragmentActivity showProMes", "使用了fragment对象。");
    }
    // 三件套必须一起用才稳键。
    fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.lin_fra_right, fragmentRight);
    fragmentTransaction.commit();

庄周晓梦迷蝴蝶,望帝春心托杜鹃。——李商隐

猜你喜欢

转载自blog.csdn.net/weixin_37627774/article/details/109000858
今日推荐