Android中Fragmnet的跳转

2023-10-27

1.Fragment跳转到Fragment中**

描述:我的项目是由MainActivity启动的Fragment作为底部导航栏(HomeFragment、StoreFragment、PersonalFragment);
情景一:点击HomeFragment中的按钮跳转到StoreFragment中

HomeFragment中 代码写进点击事件里面

MainActivity mainActivity= (MainActivity) getActivity();
                                mainActivity.setTab(2);

MainActivity中创建以下方法(也可以把鼠标点击到 HomeFragment中上面的代码的setTab(2)上点击键盘的Alt+Enter选择Create method 'setTab’在MainActivity中创建下面的方法)

public void setTab(int i) {
//这里的mBtnAddressList是StoreFragment按钮的id
        mBtnAddressList.performClick();
    }

2.Activity跳转到Fragment中**

情景二:点击Activity中的按钮 跳转到StoreFragment中

思路是:首先先关闭你打开的所有的Activity 然后向MainActivity中传值 到MainActivity中接收 进行MainActivity中代码启动StoreFragment

Activity中在点击事件里面写

 Intent intent = new Intent(ConfirmGoodsOrderActivity.this,MainActivity.class);
                    //跳转到主界面后,并将栈底的Activity全部都销毁
                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    //向MainActivity中传入这个值
                    intent.putExtra("toMy",true);
                    startActivity(intent);

MainActivity中

@Override
//getBundleExtras方法是取到你上个页面传回来的值
    protected void getBundleExtras(Bundle extras) {
    //toMy是一个Boolean值 (先定义toMy的全局变量为false)表示刚没点击按钮的时候为false
        toMy=extras.getBoolean("toMy",false);
        
    }
 new Handler().postDelayed(new Runnable() {
            //延迟跳转到界面(不延迟会导致我的界面没创建完成 导致闪退)
            @Override
            public void run() {
            //假如toMy的值为true(表示你点击了点击事件传回来的值为true)
                if (toMy){
                 //这是跳转页面
                    change(3);
                }
            }
        }, 200);  //0.2秒
    }

这是MainActivity中的change方法

public void change(int indexs) {
        index = indexs;
        if (currentTabIndex != index) {
            FragmentTransaction trx = getSupportFragmentManager().beginTransaction();
            trx.hide(fragments[currentTabIndex]);
            if (!fragments[index].isAdded()) {
                trx.add(R.id.fragment_container, fragments[index]);
            }
            trx.show(fragments[index]).commitAllowingStateLoss();
        }

用Android Studio系统自带的BottomNavigationView模板Fragment跳转Fragment

//这里的R.id.navigation_dashboard是你要跳转到页面的id
Navigation.findNavController(view).navigate(R.id.navigation_dashboard);

本篇是个人项目的跳转,不一定每个人都适用 小子是android原生的小白 第一次发文章,希望大牛们勿喷。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android中Fragmnet的跳转 的相关文章

随机推荐

  • @Async 异步调用

    package com example demo controller import com example demo service AsyncService import org springframework http Respons
  • c:\Windows\System32\drivers\etc\hosts

    c Windows System32 drivers etc hosts 是域名解析文件 可以直接用记事本打开 将IP地址重定向 格式为 ip地址 空格 域名 可以将一个域名重新定向到一个IP Hosts文件配置的映射是静态的 如果网络上的
  • NVIDIA GPU驱动和CUDA工具包 Linux CentOS 7 在线安装指南

    挑选指定系统和对应的GPU型号下载驱动和CUDA工具包 Linux CentOS安装NVIDIA GPU驱动程序和NVIDIA CUDA工具包 centos安装显卡驱动和cuda Entropy Go的博客 CSDN博客 相比之下 本文是在
  • cron表达式插件 qnn-react-cron

    eslint disable react no unstable nested components import React from react import Cron from qnn react cron import Button
  • 渗透测试流程——渗透测试的9个步骤(转)

    渗透测试的流程 1 明确目标 2 分析风险 获得授权 3 信息收集 4 漏洞探测 手动 自动 5 漏洞验证 6 信息分析 7 利用漏洞 获取数据 8 信息整理 9 形成报告 1 明确目标 1 确定范围 测试的范围 如 IP 域名 内外网 整
  • 绕过图片格式限制上传木马获取WebShell

    思路 图片上传功能中 前端页面上传的是 png格式的图片文件 但是抓包Request中修改图片后缀为 php 可以绕过对上传文件格式的限制 文件的上传路径可以在上传后的页面或查看上传成功后的response中有显示 记录下来后用菜刀连接即可
  • ApplicationContext.log 将servlet[XXX]标记为不可用 问题已解决!!!

    期间我清楚Maven重新构建项目 手动在 lib 文件中添加 servlet api 等相关jar包无果 最终我尝试着把Tomcat从 10 0 6 版本降低到 9 0 46 版本 更改环境变量重新运行 竟然好了 也许是 Tomcat 版本
  • mac下通过终端安装python3问题记录及解决

    安装python时 首先想到的是升级电脑里的python版本 可是上网搜索后发现升级可能会使用一些基于python的应用运行有问题 所以就尝试安装两个版本 一 查看当前的python版本 打开终端 输入命令python V 二 安装Xcod
  • C语言——可执行程序过程

    我们在编写代码的时候 不知道大家是否和一开始的我一样 在运行代码的时候就直接CTRL F5运行了呢 一开始 我只知道会生成一个 exe的可执行文件 中间的原理我一点也不知道 今天就由我带领大家对生成可执行的文件有更深的一层理解 程序的翻译环
  • 安装Ubuntu系统详细教程

    一 前言 本篇文章详解介绍一下如何安装Ubuntu系统 笔者在安装的过程中踩过很多坑 重装了很多次 现在把安装过程中遇到的问题也列出来 供大家参考 二 准备工作 这个环节很重要 工欲善其事 必先利其器 2 1 固态硬盘 如果是做系统源码开发
  • Android GB28181设备接入端语音广播和语音对讲技术实现探究

    上篇文章提到Android端GB28181接入端的语音广播和语音对讲的实现 从spec角度大概介绍了下流程和简单的接口设计 好多开发者私信我 希望展开说一下 其实这块难度不大 只是广播和对讲涉及到双向实现 如果之前没有相关的积累 从头实现麻
  • gitlab常用操作总结

    1 常用命令 1 git clone xx git 首先从git项目xx gitclone项目到本地 2 clone之后 使用命令行项目进入项目所在文件夹 此时一般在master分支下 为了不影响主分支代码 进行新建分支 git check
  • 40个大数据学习资源,个个是干货,最后7个太给力

    数据是驱动商业向前发展的核心 更是人类社会的未来 尽管将马云的这句话断章取义地拿出来说会显得唐突 但这话所表达的意思却显而易见 今天给大家分享的这40个教程 送给对未来抱有远见的乐观主义者 涵盖了大数据入门的大多基础知识 从Java基础到S
  • 沉浸式翻译 安装及使用

    介绍一下最近非常或的沉浸式翻译工具 非常有助于外文阅读 包括网页 pdf等 可以同时显示原文和译文 操作简单 使用起来还是非常友好的 先上链接 介绍 沉浸式翻译 如何使用 沉浸式翻译 1 安装 支持Edge Chrome Firefox和S
  • algorithm 不修改序列的操作

    文章目录 非修正序列算法 adjacent find first last count first last val for each first last func 相关参考 非修正序列算法 非修正序列算法不修改他们所作用的容器 例如计算
  • SpringBoot 集成Kafka

    Kafka项目整体结构图 父类项目 pom xml 依赖
  • 高血糖克星!育润齐梅牌胰力佳奶粉调节血糖大作用

    21世纪以来 健康一直是大家关注的重点 保健品市场行业正在慢慢扩张 尽管很多人对其有一定的争议 但不可否认的是 越来越多的消费者最终选择了接受 并且消费群体逐渐往年轻态发展 不再是老年人的专属需求 在健康大数据的观测下 已知我国目前是全球糖
  • Unity第一人称视角相机跟随鼠标移动

    基于Unity实现第一人称视角相机跟随鼠标移动 private float xRotate 0 0f private float yRotate 0 0f Void Update xRotate Input GetAxis Mouse Y
  • Vue-cli 相关webpack配置-量化打包时间和打包后分析

    参考 https blog csdn net weixin 41779718 article details 110038340 主要介绍两个插件 用于量化打包时间 和打包后分析 speed measure webpack plugin 可
  • Android中Fragmnet的跳转

    1 Fragment跳转到Fragment中 描述 我的项目是由MainActivity启动的Fragment作为底部导航栏 HomeFragment StoreFragment PersonalFragment 情景一 点击HomeFra