2015-05-20 3 views
0

Я хочу сделать 3 набора ViewPager по 3 страницы каждый. На каждой странице будет фрагмент, управляемый pagerAdapter. Внутри каждого фрагмента я предполагаю положить две кнопки, которые могут привести вас к другому набору ViewPager. Так внутри фрагмента я реализую onClickListener и в методе ClickНавигация от фрагмента ViewPager до фрагмента в Android

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

      break; 

     case R.id.imageButtonChoice2: 

      break; 
    } 
} 

Так что я должен закрыть всю деятельность, которая управляет 3 ViewPagerAdapters и перезагрузить его? или Должен ли я помещать эти кнопки навигации в действие, а не в фрагмент? Как можно щелкнуть кнопку изображения, чтобы перейти к другому набору представлений?

+0

почему вы создающего 3 ViewPagers с 3-х страниц каждый, когда вы может создать 1 viewpager с 9 страницами и перемещаться между страницами? Если это так, то как они помещаются в деятельность? – Shahzeb

+0

Поскольку каждый просмотрщик имеет разные темы –

+0

Если viewpager перекрывает друг друга, вы можете установить их видимость соответствующим образом. можете ли вы разместить свой xml-код? – Shahzeb

ответ

0

Каждая кнопка может запускать активность, которая имеет набор различных ViewPager. В этом действии вам нужно реализовать ViewPager.

Это пример (В этом примере, передается объект между фрагментом):

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) 
+0

Не было бы лучше, если бы PagerAdapters были отдельными классами, чтобы их легче контролировать и редактировать? –

+0

Да. Вы в порядке. – aldakur

+0

Решена ли проблема? – aldakur

Смежные вопросы