在Android上使用FragmentActivity.getIntent()。getExtras()时出现NullPointerException

时间:2012-06-20 23:55:29

标签: android nullpointerexception arguments bundle fragment

我开始尝试使用Android Fragments,尤其是将Activity显示到水平PagerAdapter中。

在全球范围内它工作正常,但我无法将参数传递给我的framgents并将它们放回onCreateView()方法。

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

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

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

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

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

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

我搜索了一个答案,却无法抓住一个答案。我倾向于认为我必须使用与getExtras()不同的东西来访问这个Bundle但我不知道是什么。

提前致谢。

1 个答案:

答案 0 :(得分:2)

这样做:

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");