3

I have a warning: FragmentPagerAdapter is deprecated. Here my code:

package com.sweetieapps.librarianpro;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import java.util.ArrayList;
import java.util.List;

public class ViewPagerAdapter extends FragmentPagerAdapter {

    private final List<Fragment> fragmentList = new ArrayList<>();
    private final List<String> fragmentListTitles = new ArrayList<>();

    ViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @NonNull
    @Override
    public Fragment getItem(int i) {
        return fragmentList.get(i);
    }

    @Override
    public int getCount() {
        return fragmentListTitles.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return fragmentListTitles.get(position);
    }

    void addFragment(Fragment fragment, String title){
        fragmentList.add(fragment);
        fragmentListTitles.add(title);
    }
}

I found a possible solution here: FragmentPagerAdapter deprecated But it's in Kotlin.

The warning is on the word: super

//Here
super(fm);
WizardingStudios
  • 554
  • 2
  • 7
  • 22

2 Answers2

11

As per the FragmentPagerAdapter constrctor documentation:

This constructor is deprecated. use FragmentPagerAdapter(FragmentManager, int) with BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT

So replace super(fm) with:

super(fm, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
ianhanniballake
  • 191,609
  • 30
  • 470
  • 443
1

It's time to start to move on ViewPager2 - https://developer.android.com/jetpack/androidx/releases/viewpager2