将数据传递给多个片段

时间:2014-04-29 01:06:10

标签: android android-fragments

我正在构建一个包含2个片段的视图。充气布局工作正常。但是我遇到了另一个问题。在创建这些片段之前,我需要将一些数据传递给那些片段(FragmentListSchema和FragmentSchemaDetail)。我想到了应用程序变量,但我想这不是正确的方法。我该怎么做 ? 提前致谢

膨胀:

public class FragmentSchemaTotal extends Fragment{


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.fragment_schema,container);
    return view;
    }



} 

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
 android:orientation="horizontal">
<fragment android:name="kine.gui.FragmentListSchema"
        android:id="@+id/list"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
<fragment android:name="kine.gui.FragmentSchemaDetail"
        android:id="@+id/viewer"
        android:layout_weight="2"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

使用Fragment setArguments传递数据

    FragmentSchemaTotal fragment = new FragmentSchemaTotal();
    Bundle bundle = new Bundle();
    bundle.putString("data","your data");
    fragment.setArguments(bundle);

答案 1 :(得分:0)

为什么不在片段中使用加载器让它们自己加载数据?但是,Loader的用途取决于您正在处理的数据类型。如果不了解更多,就很难建议正确的方法。

如果Loaders不适合账单,您可以让活动找到片段并在其上设置数据。在此之前,片段可以显示一个微调器,而不是它的视图。设置数据后,片段就可以显示它的视图。

最后一种方法是在代码中创建片段并将参数传递给它们。但这并不是那么灵活。我会推荐装载机。