我正在尝试使用Android中的Swipe with Tabs,我需要将一些变量传递给选项卡的片段,以显示自定义的内容,我的问题是,我总是将包绑定到0,所以我认为从片段容器页面发送额外的内容是错误的。这是片段的代码和包含选项卡的主片段页的代码。
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class
// below).
prof = getIntent().getIntExtra("prof", 0);
id = getIntent().getIntExtra("id", 0);
bund = new Bundle();
bund.putInt("prof", prof);
bund.putInt("id", id);
switch (position) {
case 0:
// Text fragment activity
FragmentOne fragment = new FragmentOne();
fragment.setArguments(bund);
return fragment;
case 1:
// Gallery fragment activity
FragmentTwo fragment2 = new FragmentTwo();
fragment2.setArguments(bund);
return fragment2;
case 2:
//Audio fragment
FragmentThree fragment3 = new FragmentThree();
fragment3.setArguments(bund);
return fragment3;
}
return null;
}当片段代码放在onCreateView方法中时
Bundle bundle = getArguments();
if (bundle!=null){
prof = bundle.getInt("prof");
id = bundle.getInt("id");
}我可以读取进入片段容器中的参数,但是在片段中我不能读取它们,我忘记了什么?
发布于 2015-07-15 11:20:32
您可以在这里尝试使用SharedPreference而不是Bundle:
在SharedPreference中实例化FragmentStatePagerAdapter:
SharedPreference mPref = mContext.getSharedPreferences("myPreference",
Context.MODE_PRIVATE);将prof和id存储到mPref:
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class
// below).
prof = getIntent().getIntExtra("prof", 0);
id = getIntent().getIntExtra("id", 0);
// store value in mPref
mPref.putInt("prof", prof);
mPref.putInt("id", id);
// commit changes
mPref.commit();
switch (position) {
case 0:
// Text fragment activity
FragmentOne fragment = new FragmentOne();
return fragment;
case 1:
// Gallery fragment activity
FragmentTwo fragment2 = new FragmentTwo();
return fragment2;
case 2:
//Audio fragment
FragmentThree fragment3 = new FragmentThree();
return fragment3;
}
return null;
}检索任何片段的onCreateView()中的值:
SharedPreference mPrefFrag = getActivity().getSharedPreferences("myPreference",
Context.MODE_PRIVATE);
int prof = mPrefFrag.getInt("prof",0);
int id = mPrefFrag.getInt("id",0);https://stackoverflow.com/questions/31221685
复制相似问题