如何从不同 Activity 调用视图寻呼机中的片段?

How to call fragment which is in view pager from different Activity?

我有 3 个页面与 activity 和查看寻呼机相关联。现在我已经像我的 activity -> A-B-C 片段一样构建了它。在我的 activity 中,我调用了寻呼机的视图寻呼机适配器代码如下:

public class ViewPagerAdapter extends FragmentPagerAdapter 
{        
    final int PAGE_COUNT = 3;
    // Tab Titles
    private String tabtitles[] = new String[] { "Tab1", "Tab2", "Tab3" };
    Context context;

    public ViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return PAGE_COUNT;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {

            // Open FragmentTab1.java
        case 0:
            HomeFragment fragmenttab1 = new HomeFragment();
            return fragmenttab1;

            // Open FragmentTab2.java
        case 1:
            CameraFragment fragmenttab2 = new CameraFragment();
            return fragmenttab2;

            // Open FragmentTab3.java
        case 2:
            FriendsFragment fragmenttab3 = new FriendsFragment();
            return fragmenttab3;
        }
        return null;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabtitles[position];
    }
}

现在,我想从 A 中调用 c 片段,但它应该是片段的新实例,而且我还想从我的一些 activity... 中调用片段 B...开始片段的新实例.....

只需跟踪 FRAGMENT_POSITION 并像这样创建实例

添加

//0 is for your first fragment , 1 for second and so on
    public final static int [] FRAGMENT_POSITION = {0, 1, 2};

在您的适配器 class 中,现在只需调用

即可获取实例
HomeFragment frag = (HomeFragment) mAdapter.getItem(FRAGMENT_POSITION[0]); //or 1 or 2

并且为了从不同的活动中调用片段的方法,在该 activity 中传递适配器的实例并执行与上述相同的操作

在您的片段 A 中创建 ViewPager 对象并为其提供您在 activity.

中使用的 ViewPager 的引用
ViewPager  viewPager = (ViewPager) getActivity().findViewById(R.id.pager);

然后打电话

viewPager.setCurrentItem(2);

在您的情况下,它将导航至 FriendsFragment。

在关闭之前使用它 mViewPager.setCurrentItem(1);当您打开它时,这会将您的 viewpager 定向到该特定片段