父碎片到Child Fragment通信

Sul*_*man 2 java android android-fragments

我一直在搜索并且没有找到嵌套片段与父片段通信的最佳方法.Android文档声明:

所有Fragment-to-Fragment通信都是通过相关的Activity完成的.两个碎片永远不应该直接通信.

假设我有一个Gallery应用程序,有一个ViewPagerFragment(父级)ImageFragment(子级),用于在单击时全屏显示图像.我需要将文件的ArrayList从我的父片段传递给子片段.什么是正确的方法呢?

1)创建于ArrayList中的一个getter 父片段,并使用getParentFragment()孩子片段访问此方法?

2)实现一个接口并浏览Activity,但是如果它没有ID,我如何从Activity中找到子片段

3)或者在父片段中使用它:

ChildFragment fragment =(ChildFragment)getChildFragmentManager().findFragmentById(R.id.child_fragment_id);

只需在子片段中使用setter .

但是我又如何获得childFragment的ID?

提前谢谢大家

Mut*_*ran 10

如果您想要将您的子片段与您的父片段进行通信,您可以使用getParentFragment()子片段中的方法.

public class ExampleParentFragment extends Fragment {

    public int getCount() {
        return 10;
    }
}

public class ChildFragment extends Fragment {


    void doAction() {
        Fragment parentFragment = getParentFragment();

        if(parentFragment instanceof ExampleParentFragment) {
            int count = ((ExampleParentFragment) parentFragment).getCount();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)