首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向SwipeView活动中的片段发送/接收附加信息

如何向SwipeView活动中的片段发送/接收附加信息
EN

Stack Overflow用户
提问于 2015-07-04 14:22:44
回答 1查看 70关注 0票数 0

我正在尝试使用Android中的Swipe with Tabs,我需要将一些变量传递给选项卡的片段,以显示自定义的内容,我的问题是,我总是将包绑定到0,所以我认为从片段容器页面发送额外的内容是错误的。这是片段的代码和包含选项卡的主片段页的代码。

代码语言:javascript
复制
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方法中时

代码语言:javascript
复制
Bundle bundle = getArguments();
    if (bundle!=null){ 
    prof = bundle.getInt("prof");
     id = bundle.getInt("id");
    }

我可以读取进入片段容器中的参数,但是在片段中我不能读取它们,我忘记了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-15 11:20:32

您可以在这里尝试使用SharedPreference而不是Bundle

在SharedPreference中实例化FragmentStatePagerAdapter:

代码语言:javascript
复制
SharedPreference mPref = mContext.getSharedPreferences("myPreference",
            Context.MODE_PRIVATE);

profid存储到mPref

代码语言:javascript
复制
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()中的值:

代码语言:javascript
复制
SharedPreference mPrefFrag = getActivity().getSharedPreferences("myPreference",
        Context.MODE_PRIVATE);    
int prof = mPrefFrag.getInt("prof",0);
int id = mPrefFrag.getInt("id",0);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31221685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档