我有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());
}
答案 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");
}
希望这会对你有所帮助