Android中从ViewPager片段到片段的导航

Android中从ViewPager片段到片段的导航,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我想制作3套ViewPager,每套3页。每个页面都有一个由pagerAdapter控制的片段。在每个片段中,我想放置两个按钮,可以将您带到另一个ViewPager集合。 所以在片段内部,我将实现onClickListener和Click方法 @Override public void onClick(View v) { switch(v.getId()) { case R.id.imageButtonChoice1: break;

我想制作3套ViewPager,每套3页。每个页面都有一个由pagerAdapter控制的片段。在每个片段中,我想放置两个按钮,可以将您带到另一个ViewPager集合。 所以在片段内部,我将实现onClickListener和Click方法

@Override
public void onClick(View v)
{
    switch(v.getId()) {
        case R.id.imageButtonChoice1:

            break;

        case R.id.imageButtonChoice2:

            break;
    }
}
那么我是否必须关闭控制3个ViewPageRadapter的整个活动并重新加载它? 或 我应该把这些导航按钮放在活动中,而不是放在片段中吗?
如何通过单击一个imagebutton转到另一个viewpager集合?

每个按钮都可以启动一个包含一组不同viewpager的活动。 在活动中,您需要impleten ViewPager

这是一个示例(在本例中,在片段之间传递一个对象):


当您可以创建一个包含9页的viewpager并在页面之间导航时,为什么要创建3个每个包含3页的viewpager?如果是这样,它们是如何放置在活动中的?因为每个viewpager都有不同的主题如果viewpager彼此重叠,您可以相应地设置它们的可见性。你能发布你的xml代码吗?如果PageRadapter是单独的类,以便更容易控制和编辑,那不是更好吗?我通过重新加载控制PageRadapter的活动解决了这个问题
    public class SectionsPagerAdapter extends FragmentPagerAdapter {
    Instalacion instalacion;
    ArrayList<Actividad> arrayListActividades;

    public SectionsPagerAdapter(FragmentManager fm, Instalacion instalacion, ArrayList<Actividad> arrayListActividades) {
        super(fm);
        this.instalacion = instalacion;
        this.arrayListActividades = arrayListActividades;

    }

    @Override  
    public Fragment getItem(int position) {  
        Fragment fragment = new Fragment();  

        switch (position) {  
        case 0:  

            fragment = new InfoInstalacionFragment1();
            Bundle bundle = new Bundle();
            bundle.putSerializable("key", (Instalacion)instalacion);
            fragment.setArguments(bundle);
            return fragment;  
        case 1: 
            fragment = new InfoInstalacionFragment2();
            Bundle bundle2 = new Bundle();
            bundle2.putSerializable("key", (Instalacion) instalacion);
            fragment.setArguments(bundle2);
            return  fragment;
        case 2:  
            fragment = new InfoInstalacionFragment3();
            Bundle bundle3 = new Bundle();
            bundle3.putSerializable("key", (ArrayList)arrayListActividades);
            fragment.setArguments(bundle3);
            return fragment;  


            return fragment; 

        default:  
            break;  
        }  
        return fragment;
    }


    public int getCount() {
        // Show 3 total pages.
        return 3;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        Fragment fragment = new Fragment();
        switch (position) {
        case 0:
            return getString(R.string.title_section1).toUpperCase(l);
        case 1:
            return getString(R.string.title_section2).toUpperCase(l);
        case 2:
            return getString(R.string.title_section3).toUpperCase(l);

        }


        return null;
    }
            mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), instalacion, arrayListActividades);

        // Instanciamos nuestro ViewPager
        mViewPager = (ViewPager) findViewById(R.id.pager);
        //habilitar el listenner
        mViewPager.setOnPageChangeListener(this);
        // Establecemos el Adapter
        mViewPager.setAdapter(mSectionsPagerAdapter)