Android 如何在SwipeView活动中向片段发送/接收额外信息

Android 如何在SwipeView活动中向片段发送/接收额外信息,android,android-fragments,tabs,arguments,extras,Android,Android Fragments,Tabs,Arguments,Extras,我试图在Android中使用带选项卡的滑动视图,我需要将一些变量传递给选项卡的片段以显示自定义内容,我的问题是我总是将捆绑设置为0,因此我认为我在从片段容器页面发送额外内容时出了问题。这是片段和包含选项卡的主片段页面的代码 public Fragment getItem(int position) { // getItem is called to instantiate the fragment for the given page. // Return a P

我试图在Android中使用带选项卡的滑动视图,我需要将一些变量传递给选项卡的片段以显示自定义内容,我的问题是我总是将捆绑设置为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");
    }

我可以读取片段容器中的参数,但无法读取片段中的参数,我忘记了什么?

您可以尝试使用
SharedReference
而不是
Bundle
,这里:

在FragmentStatePagerAdapter中实例化SharedReference:

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