Настройка пользовательского PagerAdapter в Container Activity для уничтожения фрагментов ViewPagers

Итак, у меня есть активность с ViewPager. Я хочу, чтобы он уничтожил все фрагменты ViewPager при нажатии кнопки в действии и обновил фрагменты ViewPager новым текстом/представлениями.

Я написал код в действии, как показано ниже.

 SectionsPagerAdapter mSectionsPagerAdapter;

    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), null);

    ViewPager mViewPager = (ViewPager)findViewById(R.id.vp_main);
      final PagerTabStrip strip = (PagerTabStrip)findViewById(R.id.pts_main);         
        mViewPager.setAdapter(mSectionsPagerAdapter);

        ArrayList<PagerItem> pagerItems = new ArrayList<PagerItem>();
        pagerItems.add(new PagerItem("Fragment1", new Fragment1())); //Error here when...
        pagerItems.add(new PagerItem("Fragment2", new Fragment2()));
        pagerItems.add(new PagerItem("Fragment1", new Fragment3()));
        pagerItems.add(new PagerItem("Fragment2", new Fragment4()));
        pagerItems.add(new PagerItem("Fragment1", new Fragment5()));
        pagerItems.add(new PagerItem("Fragment2", new Fragment6()));


      mSectionsPagerAdapter.setPagerItems(pagerItems); // I changed to my custom adapter here
      mSectionsPagerAdapter.notifyDataSetChanged();

СООБЩЕНИЕ ОБ ОШИБКЕ... Нет доступного включающего экземпляра типа SectionsPagerAdapter. Необходимо квалифицировать выделение с помощью включающего экземпляра типа SectionsPagerAdapter (например, x.new A(), где x — экземпляр SectionsPagerAdapter).

Может кто-нибудь пролить свет на этот вопрос?? Очень признателен


person Community    schedule 19.12.2014    source источник


Ответы (1)


Убедитесь, что класс SectionsPagerAdapter существует, а его PUBLIC и его конструктор являются PUBLIC.

Как это...

public class SectionsPagerAdapter {
      public SectionsPagerAdapter() {
      }
}

И заменить это

new SectionsPagerAdapter(getSupportFragmentManager(), null);

с этим

this.new SectionsPagerAdapter(getSupportFragmentManager(), null);

Или вы можете установить SectionsPagerAdapter как STATIC. например

public static class SectionsPagerAdapter {
      public SectionsPagerAdapter() {
      }
}

Удачи. :)

person Hemendra Sharma    schedule 19.12.2014
comment
Да. Класс SectionsPagerAdapter существует, как вы иллюстрируете, и имеет значение PUBLIC, только он находится в моем классе SectionPagerAdapter.java. Это правильно? - person ; 19.12.2014