【问题标题】:Null Object reference with getPageTitle()使用 getPageTitle() 引用 Null 对象
【发布时间】:2015-06-16 01:34:09
【问题描述】:

我需要在 FragmentPagerAdapter 中使用 getPageTitle 来正确包含滑动选项卡,但我目前在执行此操作时遇到了一些问题。

这是我的代码:

public class TabsPagerAdapter extends FragmentPagerAdapter {

private FragmentActivity activity;
//private Context context;

public static final int[] TITLES = { R.string.popularsongs, R.string.lastalbums };

public TabsPagerAdapter(FragmentManager fm) {
    super(fm);
    this.activity = activity;
}

@Override
public Fragment getItem(int index) {

    switch (index) {
        case 0:
            // Top Rated fragment activity
            return new ArtistPopularFragment();
        case 1:
            // Games fragment activity
            return new ArtistAlbumsFragment();
    }

    return null;
}

@Override
public int getCount() {
    // get item count - equal to number of tabs
    return 2;
}

@Override
public CharSequence getPageTitle(int position)
{
    /*
    String s = activity.getResources().getStringArray(R.array.tab_titles_artist);
    CharSequence cs = s;
    return cs; */
    return activity.getResources().getText(TITLES[position]);
}

}

使用此代码会使应用崩溃。我该如何解决这个问题?

非常感谢!

【问题讨论】:

  • 发布您的布局文件。

标签: android fragment adapter pager


【解决方案1】:

您错过了构造函数中的参数将引用分配给自身。改变

public TabsPagerAdapter(FragmentManager fm) {
    super(fm);
    this.activity = activity;
}

public TabsPagerAdapter(FragmentManager fm, FragmentActivity activity) {
    super(fm);
    this.activity = activity;
}

或者你也可以通过FragmentActivity

  public TabsPagerAdapter(FragmentActivity activity) {
        super(activity.getSupportFragmentManager());
        this.activity = activity;
  }

然后像 TabsPagerAdapter(getSupportFragmentManager(), this)new TabsPagerAdapter(this) 一样实例化它,具体取决于您选择的那个

【讨论】:

  • 编译时,我得到“实际参数列表和形式参数列表的长度不同”
  • 我已经将 Activity 更正为 FragmentActivity,但其他问题仍然存在
  • 您还必须更改您的new TabsPagerAdapter 以获取片段活动作为参数。以new TabsPagerAdapter(getSupportFragmentManager(), this) 为例
猜你喜欢
  • 1970-01-01
  • 2015-03-21
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 2012-09-18
  • 2020-07-12
相关资源
最近更新 更多