我正在viewpager 中实现片段视图。情况是我点击多个标签,片段从网上加载数据。 现在假设我有5个选项卡,其中所有选项卡都分配了不同的表单,在调用Web服务之后会为其填充详细信息。 现在,问题是,在第一个片段上,数据使用asynctask加载,现在当我在选项卡上滑动/单击下一个片段时,同样的异步任务再次加载。
以下是我的代码:
view_pager_client.xml
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip" />
<android.support.v4.view.ViewPager
android:id="@+id/vpPager"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</android.support.v4.view.ViewPager>
ViewPagerFragment.java
public class ViewPagerFragment extends Fragment {
View view;
ViewPagerAdapter adapterViewPager;
PagerSlidingTabStrip tabs;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
view=inflater.inflate(R.layout.view_pager_client, container,false);
initViews();
return view;
}
private void initViews() {
ViewPager vpPager = (ViewPager)view. findViewById(R.id.vpPager);
adapterViewPager = new ViewPagerAdapter(getActivity()
.getSupportFragmentManager());
vpPager.setAdapter(adapterViewPager);
tabs = (PagerSlidingTabStrip)view.findViewById(R.id.tabs);
tabs.setIndicatorColor(getResources().getColor(R.color.Red));
tabs.setBackgroundColor(getResources().getColor(R.color.White));
tabs.setViewPager(vpPager);
tabs.notifyDataSetChanged();
vpPager.setOnPageChangeListener(new OnPageChangeListener() {
// This method will be invoked when a new page becomes selected.
@Override
public void onPageSelected(int position) {
tabs.notifyDataSetChanged();
}
// This method will be invoked when the current page is scrolled
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
// Code goes here
// tabs.notifyDataSetChanged();
}
@Override
public void onPageScrollStateChanged(int state) {
// Code goes here
tabs.notifyDataSetChanged();
}
});
}
FragmentPagerAdapter.java
// Returns the fragment to display for that page
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new ProfileSummary();
case 1:
return new ContactList();
case 2:
return new ProfileSummary();
default:
return new ProfileSummary();
}
}
现在在个人资料摘要和联系人列表中,我正在从Web加载数据。为概要文件摘要执行的任务也对联系人列表执行。
请帮我解决一下这个问题。