Activity跳转到指定Fragment实例

Activity跳转到指定Fragment实例最近做的一个项目,突然出现了这个问题,Activity中有四个fragment,分别是first,two,three,four,默认显示的是fragmenta。在开发过程中,first中跳转到另一个Activity,将这个外部Activity命名为B吧…我需要从first中跳转到B中,完成一些设置,然后再从B中的返回按钮回到three,three中也有一个viewpa

大家好,又见面了,我是你们的朋友全栈君。

    最近做的一个项目,突然出现了这个问题,
    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
@Override
protected 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中接收,上代码

  @Override
public void onResume() {
    int id = getActivity().getIntent().getIntExtra("id", 0);
    if(id==2){
         vp.setCurrentItem(2);
    }
    super.onResume();
}
这样就是全部的代码了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144030.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ip地址子网掩码默认网关dns的含义_子网掩码和默认网关的作用

    ip地址子网掩码默认网关dns的含义_子网掩码和默认网关的作用转载于:https://www.cnblogs.com/JuneWang/p/3917697.htmlIP地址,子网掩码,默认网关,DNS服务器是什么意思?(一)问题解析001.问:IP地址,子网掩码,默认网关,DNS服务器,有什么区别呀?我知道没有IP地址就不能上网,我也知道没设DNS就不能上外网,可它们都有什么功能,有什么区别呢?还有真奇怪,我的计算机没设DNS,竟然能上QQ,却不能打开网页,这是为什么呢>答:IP是32位二进制数据,通常以十进制表示,并以“.”…

  • 数据库锁机制[通俗易懂]

    数据库锁机制[通俗易懂]1 前言数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2为另一个线程。T3,T4以此类推。下面以SQLServer(2005)为例。2 锁的种类共享锁(Sharedlock)。例1:——–

  • c#动态加载卸载DLL的方法

    这篇文章介绍了c#动态加载卸载DLL的方法,有需要的朋友可以参考一下c#中通过反射可以方便的动态加载dll程序集,但是如果你需要对dll进行更新,却发现.net类库没有提供卸载dll程序集的方法。在

    2021年12月27日
  • Servlet账户登陆优化

    Servlet账户登陆优化

  • 关于Harbor私有仓库的搭建及使用

    关于Harbor私有仓库的搭建及使用

  • 猪脸识别!人工智能还能这么玩?

    猪脸识别!人工智能还能这么玩?黑马程序员视频库播妞微信号:heiniu526传智播客旗下互联网资讯、学习资源免费分享平台说到AI人工智能,很多人都会想到人脸识别,毕竟这是现实生活中接触最多的人工智能产品。只要轻轻一扫…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号