我正在构建一个包含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>
答案 0 :(得分:1)
使用Fragment
setArguments
传递数据
FragmentSchemaTotal fragment = new FragmentSchemaTotal();
Bundle bundle = new Bundle();
bundle.putString("data","your data");
fragment.setArguments(bundle);
答案 1 :(得分:0)
为什么不在片段中使用加载器让它们自己加载数据?但是,Loader的用途取决于您正在处理的数据类型。如果不了解更多,就很难建议正确的方法。
如果Loaders不适合账单,您可以让活动找到片段并在其上设置数据。在此之前,片段可以显示一个微调器,而不是它的视图。设置数据后,片段就可以显示它的视图。
最后一种方法是在代码中创建片段并将参数传递给它们。但这并不是那么灵活。我会推荐装载机。