我应该如何在活动中调用viewpager实例?

时间:2016-07-28 00:03:20

标签: android android-fragments

我的ViewPager位于嵌套片段中,因为我也有导航抽屉。我的问题是如何在MainActivity.java中调用viewpager的实例,因此我可以使用方法setCurrentItem()中的MainActivity.java中的方法onBackPressed()来设置viewpager的当前项,例如当用户在第三个片段上时viewpager当他按下后退按钮时,他应该返回第一个片段。

2 个答案:

答案 0 :(得分:0)

首先,您必须将RecyclerView声明为public。不确定它是否必须是静态的,但它会告诉你它是否必须。

其次,您需要调用包含RecyclerView的片段的实例。 例如,Fragment recyclerFrag = new RecyclerFrag();

之后,尝试从该实例调用RecyclerView并使用setCurrentItem()。例如,recyclerFrag.recyclerView.setCurrentItem(0)

答案 1 :(得分:0)

我找到了解决方案。您应首先在FragmentActivity中创建一个方法,其中初始化您的ViewPager并设置返回类型ViewPager。像这样:

public ViewPager getViewPager() {
    return mViewPager; // instance of view pager
}

之后在Activity中创建Fragment的对象,您将调用view pager的实例,如下所示:

YourFragment fragment = new YourFragment();

在我的情况下,我应该在onBackPressed()中调用viewpager:

HomeFragment fragment1 = new HomeFragment();
            if (fragment1.getViewPager().getCurrentItem() == 1 || fragment1.getViewPager().getCurrentItem() == 2) {
                fragment1.getViewPager().setCurrentItem(0);
            } else {
                super.onBackPressed();
            }