将参数从活动转移到片段

时间:2015-07-09 16:18:47

标签: android android-activity fragment

我创建了Sliding Tabs中描述的滑动标签,并希望将转移的数据用于更多内容。 我搜索了解决方案,但每次都是空的。

我在我的Activity中使用了以下代码。 Fragment名为tab1_simplecall,framelayout的ID为tab1_fragment:

SELECT m.merchantId
    sum(if(m.Category='gold',m.total,null)) as gold,
    sum(if(m.Category='silver',m.total,null)) as silver,
    sum(if(m.Category='bronze',m.total,null)) as bronze
FROM merchants m
GROUP BY m.merchantId

在我的片段中,我尝试接收数据:

if (findViewById(R.id.tab1_fragment) != null){
        if (savedInstanceState!=null) {
            return;
        }
        tab1 = new tab1_simplecall();
        getSupportFragmentManager().beginTransaction().add(R.id.tab1_fragment, tab1);
    }

Fragment fragObj = new Fragment();
Bundle bundle = new Bundle();
bundle.putInt("ID", ID);
bundle.putString("time", time);
bundle.putString("worker", worker);
fragObj.setArguments(bundle);

但每次捆绑b都为空。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以使用sharedPreference在活动或片段之间发送数据。

答案 1 :(得分:0)

我将以下代码移到了活动中的onCreate的末尾。现在数据将被转移。谢谢你到目前为止:))

 if (savedInstanceState == null) {
        tab1 = new tab1_simplecall();
        bundle.putString("ID", "345123");
        tab1.setArguments(bundle);
        getSupportFragmentManager().beginTransaction().add(R.id.tab1_fragment, tab1).commit();
    }

但是几毫秒之后,应用程序崩溃并显示消息" IllegalArgumentException:找不到id ... for fragment ...

我的布局选项卡片段:

<LinearLayout
    android:orientation="vertical"
    android:id="@+id/tab1_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="30dp">

在我的Activity中,我在Fragmentlayout中调用片段的id(tab1_fragment)。但为什么? :(