如果一个Actvity传递字段碎片或片段应该初始化它?

时间:2015-04-06 04:07:04

标签: android android-fragments

我有ListFragment使用DAO对象。 DAO对象查询数据库并返回我将在ListView中显示的字符串列表。我的问题是 - 活动是否应该将DAO对象传递给片段,还是片段应该自己初始化它?

的活动:

Bundle bundle = new Bundle();
bundle.putParcable("dao", myDao);
FragmentClass frag = new FragmentClass();
frag.setArguments(bundle);

或在片段中:

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 myDao = new MyDao(getActivity());
}

1 个答案:

答案 0 :(得分:0)

我认为第一种情况"Passing field to fragment"更好。正如@Campiador所评论的那样,如果您的案例始终保留FragmentClass,那么您可以初始化片段中的字段

的活动:

Bundle bundle = new Bundle();
bundle.putParcable("dao", myDao);
FragmentClass frag = new FragmentClass();
frag.setArguments(bundle);

片段:

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 MyDao mDao = getArguments().getParcelable("dao");   
}

希望这会对你有所帮助