我有一个带有微调器的片段,我在其中添加来自互联网的数据
在onCreateView()中我初始化我的微调器并为其添加监听器
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, null);
cityChoose = (Spinner) view.findViewById(R.id.cityChoose);
cityChoose.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
HashMap temp = new HashMap();
temp.put("finset", cities.get(position).getValue());
HashMap map = new HashMap();
map.put("city", temp);
new DownloadData().execute(new Object[] { PARAM_DEALS_LIST,
map, getStoreID(), "1", "15" });
}
}
然后在onCreate上我首先将数据添加到微调器
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Tools.isNetworkAvailable(getActivity().getApplicationContext())) {
new DownloadData().execute(new Object[] { PARAM_BOTH, "",
getStoreID(), "1", "15" });
} else {
Toast.makeText(getActivity(),
getResources().getString(R.string.toastNoInternet),
Toast.LENGTH_SHORT).show();
}
}
然后,如果用户从这个片段转到另一个片段并从中单击后退按钮,我需要在微调器中显示我早期添加的数据我是这样做的
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (spinAdapter != null) {
cityChoose.setAdapter(spinAdapter);
}
}
我的问题是:
如果我第一次去片段,spinner将下载数据并通过适配器填充它,然后如果我去另一个片段,然后按回按钮,微调器将从适配器获取数据,一切正常,但如果我在使用微调器的片段单击其中一个项目,然后转到另一个片段然后返回它将初始化其onItemSelected()方法并再次下载数据,但适配器已经拥有此数据。 当我从另一个片段回到这个片段时,我怎么能避免在微调器中启动onItemSelected()?