Android如何使用viewpager从json动态添加选项卡

Android如何使用viewpager从json动态添加选项卡,android,Android,如何在Mainactivity的加载页面上使用viewpager从json动态添加选项卡,并在gridview上显示相应的数据。 我已经尝试过这个,只是静态方法 我可以从json动态添加选项卡吗?这是对应的数据 ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); if (viewPager != null) { setupViewPager(viewPager); } TabLa

如何在Mainactivity的加载页面上使用viewpager从json动态添加选项卡,并在gridview上显示相应的数据。 我已经尝试过这个,只是静态方法

我可以从json动态添加选项卡吗?这是对应的数据

 ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    if (viewPager != null) {
        setupViewPager(viewPager);
    }
    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);

    ViewPager viewPager1 = (ViewPager) findViewById(R.id.viewpager1);
    if (viewPager1 != null) {
        setupViewPager1(viewPager1);
    }
    TabLayout tabLayout1 = (TabLayout) findViewById(R.id.tabs1);
    tabLayout1.setupWithViewPager(viewPager1);

}

public void setTabFragmentTwo(String t){
    TabFragmentTwo = t;
}

public String getTabFragmentTwo(){
    return TabFragmentTwo;
}


private void setupViewPager(ViewPager viewPager) {
    Adapter adapter = new Adapter(getSupportFragmentManager());
    adapter.addFragment(new OneFragment(), "Category 1");
    adapter.addFragment(new TwoFragment(), "Category 2");
    adapter.addFragment(new ThreeFragment(), "Category 3");
    adapter.addFragment(new ThreeFragment(), "Category 3");
    adapter.addFragment(new ThreeFragment(), "Category 3");
    adapter.addFragment(new ThreeFragment(), "Category 3");
    viewPager.setAdapter(adapter);
}
static class Adapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragments = new ArrayList<>();
    private final List<String> mFragmentTitles = new ArrayList<>();

    public Adapter(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        mFragments.add(fragment);
        mFragmentTitles.add(title);
    }

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

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

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitles.get(position);
    }
}
private void setupViewPager1(ViewPager viewPager) {
    Adapter1 adapter1 = new Adapter1(getSupportFragmentManager());
    adapter1.addFragment(new Fragment_quick_bill(), "Quick Bill");
    adapter1.addFragment(new Fragment_addvnced_bill(), "Addvanc-Bil");

    viewPager.setAdapter(adapter1);
}
static class Adapter1 extends FragmentPagerAdapter {
    private final List<Fragment> mFragments = new ArrayList<>();
    private final List<String> mFragmentTitles = new ArrayList<>();

    public Adapter1(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        mFragments.add(fragment);
        mFragmentTitles.add(title);
    }

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

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

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

您可以轻松地动态添加选项卡:

private void addTab(String title) {
        mTabLayout.addTab(mTabLayout.newTab().setText(title));
        mPagerAdapter.addTabPage(title);
}
并将TabPage方法添加到PagerAdaptertabItems是项目列表

public void addTabPage(String title) {
      tabItems.add(title);
      notifyDataSetChanged();
}
//完成类检查如何使用for循环我能够动态添加3个选项卡现在您可以在任何需要的地方调用上述方法,如从api获取类别列表或使用按钮单击等

public class MainActivity extends AppCompatActivity {

    TabLayout mTabLayout;
    ViewPager mViewPager;
    Adapter mPagerAdapter;
    List<String> tabItems = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mViewPager = (ViewPager) findViewById(R.id.viewpager);
        mTabLayout = (TabLayout) findViewById(R.id.tabs);

        mPagerAdapter = new Adapter(getSupportFragmentManager());
        mViewPager.setAdapter(mPagerAdapter);

        for(int i=1; i<=3; i++){
            addTab("Tab"+ i);
        }

        mTabLayout.setupWithViewPager(mViewPager);


    }

    private void addTab(String title) {
        mTabLayout.addTab(mTabLayout.newTab().setText(title));
        addTabPage(title);
    }

    public void addTabPage(String title) {
        tabItems.add(title);
        mPagerAdapter.notifyDataSetChanged();
    }


    class Adapter extends FragmentPagerAdapter {

        public Adapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return OneFragment.newInstance("param1","param2");
        }

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

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


}

您可以轻松地动态添加选项卡:

private void addTab(String title) {
        mTabLayout.addTab(mTabLayout.newTab().setText(title));
        mPagerAdapter.addTabPage(title);
}
并将TabPage方法添加到PagerAdaptertabItems是项目列表

public void addTabPage(String title) {
      tabItems.add(title);
      notifyDataSetChanged();
}
//完成类检查如何使用for循环我能够动态添加3个选项卡现在您可以在任何需要的地方调用上述方法,如从api获取类别列表或使用按钮单击等

public class MainActivity extends AppCompatActivity {

    TabLayout mTabLayout;
    ViewPager mViewPager;
    Adapter mPagerAdapter;
    List<String> tabItems = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mViewPager = (ViewPager) findViewById(R.id.viewpager);
        mTabLayout = (TabLayout) findViewById(R.id.tabs);

        mPagerAdapter = new Adapter(getSupportFragmentManager());
        mViewPager.setAdapter(mPagerAdapter);

        for(int i=1; i<=3; i++){
            addTab("Tab"+ i);
        }

        mTabLayout.setupWithViewPager(mViewPager);


    }

    private void addTab(String title) {
        mTabLayout.addTab(mTabLayout.newTab().setText(title));
        addTabPage(title);
    }

    public void addTabPage(String title) {
        tabItems.add(title);
        mPagerAdapter.notifyDataSetChanged();
    }


    class Adapter extends FragmentPagerAdapter {

        public Adapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return OneFragment.newInstance("param1","param2");
        }

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

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


}

如何创建PagerAdapter?我不能调用。。。mPagerAdapter.addTabPagetitle@KpAbhijith请查看我的最新答案。这里有标签项列表。您好,先生,。。我在哪里调用addTabString title方法。@KpAbhijith检查我的更新答案,您将更好地了解如何创建PagerAdapter?我无法调用。。。mPagerAdapter.addTabPagetitle@KpAbhijith请查看我的最新答案。这里有标签项列表。您好,先生,。。我在哪里调用addTabString title方法。@KpAbhijith检查我的更新答案,您会更好地理解