在寻呼机的子片段中访问ViewPager的父片段视图

时间:2014-09-25 13:57:26

标签: android android-fragments android-viewpager

我想访问附带View Viewr的子片段中的父片段视图。意味着父片段包含一个视图寻呼机和视图寻呼机然后有一个片段,我想在当前的寻呼机片段中使用父片段视图。

父片段---->(包含)查看寻呼机------>(包含)子片段。 Child Fragment想要使用Parent Fragment多个视图。请提出任何解决方案。

提前致谢。

5 个答案:

答案 0 :(得分:14)

在您的子片段中使用:

ParentFragment frag = ((ParentFragment)this.getParentFragment());

在您的父片段中,您可以存储所需视图的引用并使用getter setter来访问它们,另一种解决方案是创建一个侦听器接口。请点击以下链接,了解如何实施:

http://developer.android.com/training/basics/fragments/communicating.html

答案 1 :(得分:2)

您可以使用以下代码。

        FloatingActionButton fab =  getParentFragment().getView().findViewById(R.id.menu_item);

答案 2 :(得分:1)

内部父片段

     ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager())

确保它是getChildFragmentManager()

在子片段中,可以访问父片段中的任何内容

     ((ParentFragment)this.getParentFragment()).any_thing_inside_parent_fragment;

答案 3 :(得分:0)

我试图使用sibling Fragment获取parent,因此我尝试使用getParentFragment()中的child Fragment,并且始终返回null。所以我只是从viewpagerAdapter得到了片段,这就是我访问sibling Fragment所做的:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    mViewPager = (ViewPager) container;
    BasePagerAdapter bpa = (BasePagerAdapter) mViewPager.getAdapter();
    MySiblingFragment f = (MySiblingFragment) bpa.getItem(1); //I know the position of the fragment so I hardcoded it

}
希望这会对某人有所帮助。

答案 4 :(得分:-1)

我使用此

从活动中获取变量和视图
YourActivity activity = (YourActivity) getActivity();
activity.mVar = 1;
activity.textView.setText("Number "+activity.mVar);