我想制作3个ViewPager,每组3页。每个页面都有一个由pagerAdapter控制的片段。在每个片段中,我想放置2个按钮,可以将您带到另一个ViewPager集。 所以在片段里面我将实现onClickListener和Click方法
@Override
public void onClick(View v)
{
switch(v.getId()) {
case R.id.imageButtonChoice1:
break;
case R.id.imageButtonChoice2:
break;
}
}
那么我必须关闭控制3个ViewPagerAdapters并重新加载它的整个活动吗? 要么 我应该将这些导航按钮放在活动中而不是片段中吗? 如何通过单击图像按钮可以转到另一个viewpager集?
答案 0 :(得分:0)
每个按钮都可以启动一个具有一组不同ViewPager的活动。 在活动中,您需要实现ViewPager。
这是示例(在此示例中,对象在Fragment之间传递):
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;
}
onCreate方法:
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)