gpt4 book ai didi

java - 坏习惯 - 让 fragment 使用来自 Activity 的对象?

转载 作者:行者123 更新时间:2023-11-30 02:39:31 24 4
gpt4 key购买 nike

<分区>

让 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();
...
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com