Wie kann ich mit ViewPager in Android dynamisch einen Tab erstellen?

Erläuterung

Angenommen, ich habe mehrere Kategorien, die aus meinem REST stammen. Ich weiß nicht, wie viele Kategorien es sein können, 5,7 oder manchmal 2 usw. Ich möchte alle Kategorien mit dem ViewPager auf meinem Tab ablegen. Ich möchte eine Registerkarte erstellen, die der Größe der Kategorien entspricht. mal sehen, z. Angenommen, in meiner REST-Antwort gibt es nur zwei Kategorien. Es werden nur zwei Registerkarten erstellt. Wenn es 5 Kategorien hat, dann 5 Reiter und so weiter.

Hier ist das Beispiel für einen Test zum Erstellen von Registerkarten.

MainActivity.java

public class MainActivity extends AppCompatActivity {

    TabLayout tabLayout;
    ViewPager viewPager;
    Toolbar toolbar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        toolbar=(Toolbar)findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        tabLayout=(TabLayout)findViewById(R.id.tabs);
        viewPager=(ViewPager)findViewById(R.id.viewpager);

        setupViewPager(viewPager);
        viewPager.setCurrentItem(0);
        tabLayout.setupWithViewPager(viewPager);
    }
    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        for(int i=0;i<3;i++){
            adapter.addFragment(new OneFragment(), "ONE");
//            adapter.addFragment(new TwoFragment(), "TWO");
            viewPager.setAdapter(adapter);
        }
    }
}

ViewPagerAdapter.java

public class ViewPagerAdapter extends FragmentPagerAdapter {

    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager){
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

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

    public void addFragment(Fragment fragment,String title){
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

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

Bitte, wie kann ich das lösen ???

Antworten auf die Frage(4)

Ihre Antwort auf die Frage