首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FragmentPagerAdapter崩溃

FragmentPagerAdapter崩溃
EN

Stack Overflow用户
提问于 2017-07-29 13:02:04
回答 2查看 537关注 0票数 0

我尝试用几个片段构建viewPager。

但是,当我启动应用程序时,我会遇到短信崩溃。

尝试在空对象引用上调用虚拟方法'java.lang.Class java.lang.Object.getClass()‘

我的代码如下:

代码语言:javascript
复制
    public static class MyPagerAdapter extends FragmentPagerAdapter {
        private static int NUM_ITEMS = 4;

        MainFragment main;
        CartFragment cart;

        public MyPagerAdapter(FragmentManager fragmentManager) {
            super(fragmentManager);

            main = new MainFragment();
            cart = new CartFragment();
        }

        // Returns total number of pages
        @Override
        public int getCount() {
            return NUM_ITEMS;
        }

        @Override
        public Fragment getItem(int position) {
            switch (position) {
                case 0: 
                    return main;
                case 1: 
                    return null;
                case 2: 
                    return null;
                case 3:
                    return cart;
                default:
                    return null;
            }
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2017-07-29 13:04:11

使用下面的代码调用片段..。

代码语言:javascript
复制
  @Override
    public android.support.v4.app.Fragment getItem(int position) {
        Fragment f = new Fragment();
        switch (position) {
            case 0:
                f = new LogoFragment();
                break;
            case 1:
                f = new AboutUsFragment();
                break;
            case 2:
                f = new ServicesFragment();
                break;
        }
        return f;
    }
票数 1
EN

Stack Overflow用户

发布于 2017-07-29 13:05:46

这是我使用它的方法:

代码语言:javascript
复制
public class ViewPagerAdapter extends FragmentPagerAdapter {

ArrayList<PagerFragments> mFragments;

public ViewPagerAdapter(FragmentManager fm) {
    super(fm);
    this.mFragments = new ArrayList<>();
}

public void addFragment(Fragment fragment,String title) {
    PagerFragments t = new PagerFragments();
    t.setTitle(title);
    t.setFragment(fragment);
    mFragments.add(t);
    notifyDataSetChanged();
}
public void addFragment(Fragment fragment) {
    PagerFragments t = new PagerFragments();
    t.setFragment(fragment);
    mFragments.add(t);
    notifyDataSetChanged();
}
//This method return the fragment for the every position in the View Pager
@Override
public Fragment getItem(int position) {
    return mFragments.get(position).getFragment();
}

// This method return the titles for the Tabs in the Tab Strip

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

// This method return the Number of tabs for the tabs Strip

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

}

PagerFragment.java:

代码语言:javascript
复制
import android.support.v4.app.Fragment;


public class PagerFragments {
Fragment fragment;
String title;

public Fragment getFragment() {
    return fragment;
}

public void setFragment(Fragment fragment) {
    this.fragment = fragment;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

}

然后在片段或活动中:

代码语言:javascript
复制
  private ViewPagerAdapter viewPagerAdapter;
viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager());
                    viewPagerAdapter.addFragment(new RTopGainLossFragment(oneDay), "1D");
                    viewPagerAdapter.addFragment(new RTopGainLossFragment(oneWeek), "1W");
                    viewPagerAdapter.addFragment(new RTopGainLossFragment(oneMonth), "1M");
                    viewPagerAdapter.addFragment(new RTopGainLossFragment(oneYear), "YTD");
                    viewPagerAdapter.addFragment(new RTopGainLossFragment(ytd), "1Y");
                    viewPagerAdapter.addFragment(new RTopGainLossFragment(max), "MAX");
                    viewpager.setAdapter(viewPagerAdapter);
                    tab.setupWithViewPager(viewpager);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45389603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档