我开始尝试使用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但我不知道是什么。
提前致谢。
答案 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");