【问题标题】:NullPointerException when using FragmentActivity.getIntent().getExtras() on Android在 Android 上使用 FragmentActivity.getIntent().getExtras() 时出现 NullPointerException
【发布时间】:2012-06-23 04:40:18
【问题描述】:

我开始尝试使用 Android 片段,尤其是在水平 PagerAdapter 中显示活动。

在全局范围内它工作正常,但我无法将参数传递给我的 framgent 并将它们返回到 onCreateView() 方法中。

基本上,我这样创建片段:

Bundle args = new Bundle();
args.putInt(ActionCodes.GAME_INDEX, game.getIndex());
fragments.add(Fragment.instantiate(this, GameReadActivityFragment.class.getName(), args));

请注意,我将 Bundle 参数传递给 Fragment.instantiate() 方法。

然后,在 GameReadActivityFragment.onCreateView() 中,我执行以下操作:

int gameIndex = this.fragmentActivity.getIntent().getExtras().getInt(ActionCodes.GAME_INDEX);

但我得到一个 NullPointerException 因为getExtras() 返回 null :(

我搜索了一个答案,但没有找到答案。我倾向于认为我必须使用不同于 getExtras() 的东西来访问这个 Bundle,但我不知道是什么。

提前致谢。

【问题讨论】:

  • 尝试将代码放在片段的 onStart() 中
  • 我不认为该捆绑包与任何意图相关联。 AFAIK,实例化片段不使用意图......(如果我误解了这一点,请告诉我)。

标签: android nullpointerexception arguments bundle fragment


【解决方案1】:

这样做:

public static MyFragment newInstance(String bar) {
        MyFragment frag = new MyFragment();
        Bundle args = new Bundle();
        args.putString("foo", bar);
        frag.setArguments(args);
        return frag;
    }

然后在onCreateView,你可以这样做:

String text = getArguments().getString("foo");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2013-06-29
    相关资源
    最近更新 更多