android 网络处理流程,android – 如何在Fragment中处理网络调用

我有以下情况:

我有一个托管ViewPager的Activity,我有4个片段;

一开始的ViewPager包含片段A,

当用户在ViewPager上滑动片段B进入ViewPager,然后片段C和片段D …等…

现在,只要实例化FragmentPagerAdapter,就会创建至少2个片段.

这带来了两个问题:

>每个片段都需要执行网络呼叫,但我不想做不必要的(我不想为片段B进行网络调用,如果用户从不滑动到片段B);

>类似于1.),当Fragment执行网络调用时,我需要显示一个ProgessDialog,但是如果用户从未进入过它,我不想显示Fragment B中的对话框…

请问在这种情况下我应该使用什么样的模式?

活动

public class PagerActivity extends ActionBarActivity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.viewpager_layout);

ViewPager pager=(ViewPager)findViewById(R.id.pager);

TabPageIndicator tabs=(TabPageIndicator)findViewById(R.id.titles);

pager.setAdapter(buildAdapter());

tabs.setViewPager(pager);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

}

}

FragmentPagerAdapter

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {

@Override

public int getCount() {

return (4);

}

@Override

public Fragment getItem(int position) {

if (position == 1) {

if (dashbardFragment == null)

dashbardFragment = DashBoardFragment.newInstance(position);

return dashbardFragment;

}

if (position == 0) {

if (listOfParticipantFragment == null)

listOfParticipantFragment = ListOfParicipantsFragment

.newInstance(position);

return listOfParticipantFragment;

}

}

1片段

public class ListOfParicipantsFragment extends Fragment {

public static ListOfParicipantsFragment newInstance(int position) {

ListOfParicipantsFragment frag = new ListOfParicipantsFragment();

return (frag);

}

public static String getTitle(Context ctxt, int position) {

return myApplication.getContext().getResources().getString(R.string.list_of_participants_fragment_title);

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View result = inflater.inflate(R.layout.guest_list_fragment_layout,

container, false);

return (result);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值