当前位置: 首页 > 知识库问答 >
问题:

使用ViewPager时getActivity可以返回null吗?

胡霖
2023-03-14
  public class SectionsPagerAdapter extends FragmentStatePagerAdapter {

    private int numOfTabs;

    SectionsPagerAdapter(FragmentManager fm, int numOfTabs) {
        super(fm);
        this.numOfTabs = numOfTabs;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position){
            case 0:
                Log.i(TAG, "Fragment Pos: "+ position);
                return new Tab1();
            case 1:
                Log.i(TAG, "Fragment Pos: "+ position);
                return new Tab2();
            case 2:
                Log.i(TAG, "Fragment Pos: "+ position);
                return new Tab3();
            case 3:
                Log.i(TAG, "Fragment Pos: "+ position);
                return new Tab4();
            case 4:
                Log.i(TAG, "Fragment Pos: "+ position);
                return new Tab5();
            case 5:
                Log.i(TAG, "Fragment Pos: "+ position);
                return new Tab6();
                default:
                    return null;
        }
    }

    @Override
    public int getCount() {
        // Get total pages
        return numOfTabs;
    }
}

setupViewPager()方法:

mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());

    // Set up the ViewPager with the sections adapter
    mViewPager = findViewById(R.id.viewPager);

    mViewPager.setAdapter(mSectionsPagerAdapter);

    mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

共有1个答案

赫连琦
2023-03-14

>

  • u始终可以使用视图本身的上下文viewpager.getcontext()

    使用getactivity()是可以的,只要您确定在这一点上活动不是空的,例如在onactivitycreated中。

    如果您想摆脱lint警告,只需对getactivityvar进行null检查即可。

  •  类似资料:
    • 问题内容: 如果是这样,在什么情况下? Javadoc和JPA规范什么也没说。 问题答案: 你是对的。JPA规范对此一无所获。但是 Java Persistence with Hibernate的第二版书 说: 如果查询结果为空,则返回null 调用query.getResultList()时,没有结果的Hibernate JPA实现(实体管理器)返回null。 更新 正如某些用户指出的那样,最新

    • 接口列表的迭代器方法可以返回null吗? 链接:https://docs.oracle.com/javase/7/docs/api/java/util/list.html#iterator()

    • 我正在开发一个android应用程序,它有一个活动。该活动有一个ViewPager,它使用FragmentStatePagerAdapter加载两个片段。 正在活动的onResume方法上重新创建此适配器。 那是内存溢出错误吗?为什么getActivity()方法在片段似乎被正确加载的情况下返回null? 提前谢谢你

    • 问题内容: 我得到了以下简单代码: 并且在命中时为null (引发null指针异常)。 我的问题是,即使我将其设置为在每个ip的.s上进行拆分,为什么ipArray仍为null? 问题答案: 使用,您的问题将得到解决。问题是String#split接收到一个正则表达式,点(。)符号在正则表达式中是一个特殊字符,因此您需要对其进行转义以将其解释为纯点,并且反斜杠也是转义字符在Java中,您也必须对其

    • 附言。很抱歉开始了新的话题,但我的因果报应不允许我评论答案。

    • 我是Android开发的新手,当然还有碎片。 我想访问main activity中我的片段的控件,但是'find viewbyid'返回null。如果没有片断,代码可以正常工作。