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)
上一篇 2022年5月20日 下午12:20
下一篇 2022年5月20日 下午12:20


相关推荐

  • BIEE 介绍

    BIEE 介绍nbsp nbsp nbsp nbsp OracleBIEE 简称 BIEE 作为 Oracle 的新的商业智能平台企业版 起源于 Oracle 所收购的 Siebel 公司 BIEE 原来叫做 SiebelAnalyt OracleBIEE 是一个非常有创造力的工具 它对于物理层 逻辑层 展现层的理解和定义创造了一个非常简洁而清晰的数据模型 使用这个数据模型可以完整地连接企业内各个异构数据源 从而使商业智能真正能够在企业范围内得到大规

    2026年3月16日
    1
  • 需求规格说明书模板

    需求规格说明书模板需求规格说明阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件,它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。它应该尽可能完整地描述系统预期的外部行为和用户可视化行为。除了设计和实现上的限制,软件需求规格说明不应该包括设计、构造、测试或工程管理的细节。  1)采用软件需求规格说明模版:采用需求规格说明书模板在你的组织中要为编写软…

    2022年4月9日
    70
  • MySQL修改root密码的多种方法

    MySQL修改root密码的多种方法方法 1 用 SETPASSWORD 命令 MySQL urootmysql gt SETPASSWORDF root localhost PASSWORD newpass 方法 2 用 mysqladminmy urootpasswor newpass 如果 root 已经设置过密码 采用如下方法 mysqladmin urootpasswor newpass 方法 3 用 UPDATE 直接编辑 user

    2026年3月19日
    2
  • AssemblyInfo.cs文件的作用

    AssemblyInfo.cs文件的作用

    2021年12月14日
    45
  • 怎么用sql脚本创建数据库_mysql数据库导入

    怎么用sql脚本创建数据库_mysql数据库导入使用sql脚本建立数据库,可以方便各用户,各数据库之间的复制使用,下面将在cmd中完成上述操作:cmd中mysql基本操作:1.连结mysql:C:\Users\WJ>mysql-h127.0.0.1-uroot-p123456其中-h表示host127.0.0.1表示地址,这里你如果是远程访问的话,直接写上远程地址即可,-u-p分别为用户名及密码;2.查看所有数据库:showdatabases;3.操作某一数据库:useschool_2;4.查看该数据库下的表:s

    2026年3月4日
    5
  • 阿里消息队列rocketmq_阿里云mqtt

    阿里消息队列rocketmq_阿里云mqtt最近需求需要实现收款语音的播报,如果不考虑费用问题,使用推送与百度AL开发平台的语音合成功能就可也实现收款语音的播报功能,但是考虑到费用问题,同时还考虑到ios与Android可以同步使用的问题(ps:ios如果使用推送需要把应用上架到苹果商店,需要有证书,而且还需要通过审核才能进行推送。但是目前ios的签名一般都不上架,而是进行企业签,使用第三方的分发进行软件的更新,所以一般都不考虑上架)。由此…

    2025年5月31日
    3

发表回复

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

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