<分区>
让 fragment 使用其持有者 Activity 中的对象是一种不好的做法,还是我应该让我的每个 fragment 都初始化它们自己的对象。
我认为这是不好的做法的原因是,现在 fragment 依赖于一个 Activity ,这剥夺了它的可重用性。请告诉我使用 fragment 的最佳做法是什么。
例如,我有一个带有抽屉导航的 Activity MainActivity。抽屉导航用于在 MainActivity 中的五个 fragment 之间切换。在 MainActivity 中,我已经初始化:
public class MainActivity extends SherlockFragmentActivity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private ArrayList<String> navItems;
private NavigationAdapter navAdapter;
private ArrayList<Series> series;
private ArrayList<Episode> history;
private ArrayList<NewsItem> news;
FlowAdapter flowAdapter;
CardAdapter cardAdapter;
NewsAdapter newsAdapter;
Server SP = new Server();
Processor CPU = new Processor();
Parser mParser = new Parser();
...
}
在我的一个名为 HomeFragment 的 fragment 中,我想知道是否最好为每个对象初始化它自己的版本:
public class HomeFragment extends SherlockFragment implements
OnNavigationListener {
GridView homeList;
ArrayAdapter<CharSequence> modeList;
ActionBar mActionBar;
int current_item;
SherlockFragmentActivity main;
private ArrayList<Series> series;
FlowAdapter flowAdapter;
Bundle savedInstanceState;
ImageFetcher mFetcher;
boolean flag_loading;
Server SP = new Server();
Processor CPU = new Processor();
int page;
...
}
... 或者通过使用一些函数从 MainActivity 中获取它们,例如:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
SP = ((MainActivity) getActivity()).getServer();
...
}