动态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();
庄周晓梦迷蝴蝶,望帝春心托杜鹃。——李商隐