Activity跳转到指定Fragment实例

来源:互联网 发布:知乎注册在哪里 编辑:程序博客网 时间:2024/05/20 07:53
    最近做的一个项目,突然出现了这个问题,    Activity 中有四个fragment,分别是 first, two, three, four,默认显示的是fragment a。在开发过程中,first中 跳转到另一个Activity ,将这个外部Activity命名为B吧...

我需要从first中跳转到B中,完成一些设置,然后再从B中的返回按钮回到three,three中也有一个viewpager(1,2,3),需要跳转到3。但是使用startActivity()方法的结果是:可以实现从first到B的跳转,但是从B跳到three出现了错误。苦思冥想一整天,找了好多博客试了也没有解决。第二天早上灵光一闪,改了几个值,突然就跑通了。下面就分享一下这个案例。
首先是在B的跳转到Activity,不多解释,直接上代码

      button.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            Intent i=new Intent();            i.setClass(BActivity.this, Activity.class);            //一定要指定是第几个pager,因为要跳到ThreeFragment,这里填写2            i.putExtra("id",2);            startActivity(i);        }    });跳转之后就是在Activity中,在这里跳转到three,这里重写了onResume()方法相信有这个错误的童鞋一定都找过很多案例,这里就不多做解释了,直接上代码//activity跳转到fragment@Overrideprotected void onResume() {    int id = getIntent().getIntExtra("id", 0);    if (id == 2) {        Fragment fragmen = new ThreeFragment();        FragmentManager fmanger = getSupportFragmentManager();        FragmentTransaction transaction = fmanger.beginTransaction();        transaction.replace(R.id.viewpager, fragmen);        transaction.commit();        mViewPager.setCurrentItem(2);//        //帮助跳转到指定子fragment        Intent i=new Intent();        i.setClass(RadioActivity.this,ThreeFragment.class);        i.putExtra("id",2);    }    super.onResume();}最后是在ThreeFragment中接收,上代码  @Overridepublic void onResume() {    int id = getActivity().getIntent().getIntExtra("id", 0);    if(id==2){         vp.setCurrentItem(2);    }    super.onResume();}这样就是全部的代码了。
原创粉丝点击