Ошибка android индикатора CircleView (вероятно, ошибка новичка)

#android #android-studio

#Android #android-studio

Вопрос:

Я новичок в разработке Android и пытаюсь реализовать индикатор круга. Я следую инструкции JakeWharton: https://github.com/JakeWharton/ViewPagerIndicator#usage

Но я получил сообщение об ошибке:

Вот мой xml:

    <android.support.v4.view.ViewPager
    android:id="@ id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:animationCache="false" />

<com.viewpagerindicator.TitlePageIndicator
    android:id="@ id/titles"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent" />
  

И мой фрагмент:

  @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        final View rootView = inflater.inflate(R.layout.fragment_main, container, false);

        //Set the pager with an adapter
        ViewPager pager = (ViewPager)rootView.findViewById(R.id.container);
        pager.setAdapter(new TestAdapter(getSupportFragmentManager()));

        //Bind the title indicator to the adapter
        TitlePageIndicator titleIndicator = (TitlePageIndicator)rootView.findViewById(R.id.titles);
        titleIndicator.setViewPager(pager);
  .....
}
  

Эта строка: pager.setAdapter(new TestAdapter(getSupportFragmentManager()));

Выдает ошибку: нестатический метод «getSupportFragmentManager ()» нельзя использовать из статического контекста.

Я уже выполнил импорт в grandle. Как я могу это исправить? Спасибо за совет

— ОБНОВЛЕНИЕ 3:

Я создал новый НЕСТАТИЧЕСКИЙ класс и теперь в новом классе:

 //Set the pager with an adapter
        ViewPager pager = (ViewPager)rootView.findViewById(R.id.container);
        pager.setAdapter(new MainActivity.SectionsPagerAdapter(getActivity().getSupportFragmentManager()));
  

Ошибка: MainActivity не является включающим классом.

Ответ №1:

Чтобы использовать SupportFragmentManager во фрагменте, вы должны использовать следующий синтаксис getActivity().getSupportFragmentManager()

Комментарии:

1. При этом я получил следующее: не удается разрешить символ «TestAdapter»

2. Я не знаю, на что ссылается TestAdapter, потому что у меня нет класса с таким именем

3. @GMX в этом случае вам следует реализовать ее, расширив FragmentPagerAdapter или FragmentStatePagerAdapter

4. @GMX если ответ был правильным, пожалуйста, выберите его в качестве соответствующего ответа

5. Все еще не работает, но теперь кажется близким, проверьте мой ответ внизу