1

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

在全球范围内它工作正常,但我无法将参数传递给我的 framgents 并将它们返回到 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,但我不知道是什么。

提前致谢。

4

1 回答 1

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");
于 2012-06-21T01:55:14.483 回答