Android如何使用viewpager从json动态添加选项卡
如何在Mainactivity的加载页面上使用viewpager从json动态添加选项卡,并在gridview上显示相应的数据。 我已经尝试过这个,只是静态方法 我可以从json动态添加选项卡吗?这是对应的数据Android如何使用viewpager从json动态添加选项卡,android,Android,如何在Mainactivity的加载页面上使用viewpager从json动态添加选项卡,并在gridview上显示相应的数据。 我已经尝试过这个,只是静态方法 我可以从json动态添加选项卡吗?这是对应的数据 ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); if (viewPager != null) { setupViewPager(viewPager); } TabLa
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检查我的更新答案,您会更好地理解