讓片段使用持有者活動中的對象是不好的做法,還是應該讓每個片段都初始化它們自己的對象?不良做法 - 使片段使用Activity中的對象?
我認爲這是不好的做法的原因是因爲現在片段依賴於一個活動,這會消除其重用性。請告訴我什麼是使用片段的最佳做法。
例如,我有一個活動MainActivity,它有一個導航抽屜。導航抽屜用於在MainActivity中的五個片段之間切換。在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之一,我想知道,如果它要成爲更好的初始化自己的每個對象的版本:
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();
...
}