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();
}
这样就是全部的代码了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DirectX修复工具的详细使用步骤介绍[通俗易懂]

    DirectX修复工具的详细使用步骤介绍[通俗易懂]DirectX修复工具的详细使用步骤介绍@TOCDirectX修复工具是一款系统级工具软件,简便易用,无需安装,可直接运行,下面为大家分享的是DirectX修复工具的详细使用步骤介绍首先我们下载DirectX修复工具,再找到并打开“维护电脑”,在找到并打开“恢复软件”,再点“DirectX修复工具”2.这时候解压之后,这里有两个DirectXRepair.exe修复工具,另一个Direc…

    2022年6月10日
  • 超简单部署使用Maven私库 Nexus

    超简单部署使用Maven私库 Nexusdocker拉取:dockerpulldocker.io/sonatype/nexus3运行容器:dockerrun-d-p8085:8081–namenexusdocker.io/sonatype/nexus,映射到本地的8085端口,等一会儿就好了,用dockerps-a命令查看访问地址:http://192.64.23.111:8085/)…

    2022年7月18日
  • nginx反向代理和正向代理的区别是什么_nginx负载均衡的三种方式

    nginx反向代理和正向代理的区别是什么_nginx负载均衡的三种方式nginx反向代理和正向代理的区别是什么?下面本篇文章就来给大家介绍一下,希望对你们有所帮助。什么是正向代理?正向代理是一个位于客户端和原始服务器(originserver)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。什么是反向代理?反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服.

    2022年10月23日
  • axios上传文件以及遇到的问题

    axios上传文件以及遇到的问题axios上传文件以及遇到的问题1,这里上传文件使用的是elementUI的上传,也用原生的input上传写了,但是没有时间做多文件上传,下面会把代码贴出。2,这里上传文件我是先获取OSS权限和上传路径,然后再上传。但是权限获取成功后,上传到阿里云服务器时,OPTION请求报403。原因是项目中axios设置了拦截器,添加了config配置,但是在axios发送OPTION测试接口是否有权限访…

    2022年6月17日
  • Oracle创建数据库语句_oracle创建表的sql语句

    Oracle创建数据库语句_oracle创建表的sql语句Oracle创建表空间,用户及授权

    2022年9月22日
  • 构造函数的作用和特点[通俗易懂]

    构造函数的作用和特点[通俗易懂] 1. 构造函数的作用        构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建对象时, 对象会自动调用它的构造函数。一般来说, 构造函数有以下三个方面的作用:            ■ 给创建的对象建立一个标识符;            ■ 为对象数据成员开辟内存空间;            ■ 完成对象数据成员的初始化。2. 默认构造函数      …

    2022年9月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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