Navigation之使用Safe Args传递数据(二)

news2024/11/25 0:54:11

系列文章目录

Navigation的简单使用(一)

一、Safe Args传递数据

1.引入库

  • 1.将 Safe Args 添加到您的项目,请在顶层 build.gradle 文件中包含以下 classpath:
 buildscript {
    repositories {
        google()
    }
    dependencies {
        def nav_version = "2.8.0"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
    }
}

在这里插入图片描述

  • 2.将以下行添加到应用模块build.gradle 文件中:
plugins {
  id 'androidx.navigation.safeargs'
}

注:我这个是最新版的AS,你们不要写跟我一样,只需要把id 'androidx.navigation.safeargs'添加上去就行,其他地方不用修改
在这里插入图片描述

2.在navigation文件添加参数

在这里插入图片描述

3.编写代码

Page1Fragment

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    Button btn_page1=view.findViewById(R.id.btn_page1);
    btn_page1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            /**
             *  Page1FragmentDirections :是根据当前所操作的类Page1Fragment,然后在源目的地的名称后面加上“Directions”。
             *  actionPage1FragmentToPage2Fragment :是navigation文件对应的action的id
              */
            Page1FragmentDirections.ActionPage1FragmentToPage2Fragment action = Page1FragmentDirections.actionPage1FragmentToPage2Fragment();
            action.setOrigin("从Page1页面传递过来的");

            //navigate 方法会处理从当前 Fragment 到目标 Fragment 的过渡,包括任何定义的过渡动画,并且会携带 action 对象中设置的参数。
            Navigation.findNavController(view).navigate(action);
        }
    });
}

在这里插入图片描述
Page2Fragment

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    /**
     * Page2FragmentArgs:是由目标类Page2Fragment,后面加上“Args”来的,跟navigation文件设置的那样
     */
    String origin = Page2FragmentArgs.fromBundle(getArguments()).getOrigin();
    Log.d("TAG", "Page2Fragment接受到的数据: "+origin);
}

在这里插入图片描述
运行截图:
在这里插入图片描述
源码地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2135229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年9月114日(使用kubectl run 创建pod|配置文件创建pod)

一、pod 1、更改镜像站 [rootk8s-master ~]# vim /etc/docker/daemon.json {"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","http…

如何将本地项目上传到GitHub(SSH连接)

在个人GitHub中新建项目(远程仓库),添加一个README文件,方便后面验证 记住这个默认分支,我这里是main,你的可能是master或其他 先复制下SSH地址 在项目文件夹中右键打开Git命令行 初始化本地仓库,同时指定默认分支为ma…

MyBatis 面试题11-27

11、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的? 都有哪些映射形式? Mybatis 在执行 SQL 查询后,会将结果集封装为目标对象并返回。这主要依赖于 Mybatis 的映射机制,它提供了两种主要的映射形式: 第一种&#xff1…

【触想智能】工控一体机在船舶航运上应用的优势和应用场景分析

随着船舶航运业的发展,工控一体机在船舶航运领域上的应用越来越广泛。工控一体机的功能和性能可以加强船舶航运领域的自动化和智能化水平。 下面,触想智能小编针对工控一体机在船舶航运领域上应用的优势和应用场景进行简单分析,给大家借鉴参考…

LVGL控件之表格(lv_table)

目录 一、概述二、表格1、设置单元格的值2、行和列的设置3、宽度和高度的设置4、合并单元格5、滚动6、事件7、API 函数 一、概述 Table(表格)是由包含文本的行、列和单元格构建的。 表格对象非常轻量级,因为仅存储文本。没有为各个单元格创…

Altium Designer常用操作备忘笔记

Altium Designer常用操作备忘笔记 Chapter1 Altium Designer常用操作备忘笔记Chapter2 Altium Designer 22.1.2使用总结(常更)一、原理图1.1 绘制元器件原理图1.2 绘制元器件封装1.3 修改原理图网格1.4 修改原理图库后更新当前原理图1.5 旋转和翻转1.6 悬…

Leetcode Hot 100刷题记录 -Day15(螺旋矩阵)

螺旋矩阵 问题描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输…

104. 二叉树的最大深度【 力扣(LeetCode) 】

零、LeetCode 原题 104. 二叉树的最大深度 一、题目描述 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 二、测试用例 示例 1: 输入:root [3,9,20,null,null,15,7] 输出…

[git] MacBook 安装git

文章目录 1.Mac Git 安装2. 开发者工具安装 CommandLineTools安装完成,错误解决 3. git 账户配置账户设置生成秘钥git 或者 gitee 仓库添加公钥查看全局账户命令多账户设置config文件测试连接clone到本地 1.Mac Git 安装 Mac一般自带Git工具,也就是说已…

监听html元素是否被删除,删除之后重新生成被删除的元素

/*** 监听水印是否清除和修改*/ export function watermarkClear() {// 添加水印的盒子let box: any document.querySelector(.dplayer-video-wrap)// 水印let watermark: any document.querySelector(.dplayer-logo)// 观察器的配置(需要观察什么变动&#xff09…

css scrollbar-width: none 隐藏默认滚动条

.table-box{ flex: 1; overflow-y: scroll; scrollbar-width: none;} scrollbar-width: none; 隐藏默认滚动条

计算机二级自学笔记(程序题1部分)

(1)b fun函数内a数组作为参数,下方提供了b函数作为中间数组所以在这进行初始化 (2)2 第二个循环内将a数组分为1-27与27-55两部分,1-27存放在b数组的奇数位,27-55存放在b数组的偶数位 (3)a[k] 将b数组传递回数组a nm mn 已经有的参数…

使用 PyTorch 构建 MNIST 手写数字识别模型

引言 MNIST 数据集是一个经典的机器学习数据集,包含了 70,000 张手写数字图像,其中 60,000 张用于训练,10,000 张用于测试。每张图像都是 28x28 像素的灰度图像,并且已经被居中处理以减少预处理步骤。本文将介绍如何使用 PyTorch…

剪辑必备,6个可白嫖的视频素材网站。

找视频素材就上这6个网站,免费下载,赶紧收藏好! 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 菜鸟图库网素材非常丰富,网站主要以设计类素材为主,高清视频素材也很多,像风景、植物、动物、人物、科技…

Redis(主从复制、哨兵模式、集群)概述及部署测试

目录 一、Redis 主从复制 1.1、Redis 主从复制概念 1.2、主从复制的作用 1.3、主从复制流程 1.4、搭建Redis 主从复制 二、Redis 哨兵模式 2.1、Redis 哨兵模式概念 2.2、哨兵模式原理 2.3、哨兵模式的作用 2.4、哨兵模式的结构 2.5、故障转移机制 2.6、主节点的选…

性能诊断的方法(四):自下而上的资源诊断方法和发散的异常信息诊断方法

关于性能诊断的方法,我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手,包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么,这里我们归纳了自上而下的资源…

从安装ffmpeg开始,把一个视频按照每秒30帧fps剪切为图片

ffmpeg -i demo.mp4 -vf fps1 -start_number 0 %5d.jpg没有ffmpeg 的去官网下载, ffmpeg.org/download.html 下载好之后,解压进入bin文件夹 复制当前路径,下一步 配置环境 进入本机环境变量,把地址添加到path中 之后进入anacond…

Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 Vue3)

Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 & Vue3) 在对于二维码生成中有许多组件,下面介绍关于自定义比较高的vue-qr组件,能自定义设置背景颜色、背景图片、背景Gif图、实点和空白区的颜色、中心Logo的图片和边距。 一…

为什么企业可以通过数据产品实现商业价值

管理者们通常希望可以通过数据洞悉更精准的商业趋势。 根据 Gartner 2023 年的调查显示,有69%的数据分析师或数据管理者们,仍在努力通过数据分析,希望实现可衡量的投资回报率,而数据产品是实现这一难题的重要解决方案之一。 什么…

USBCANFD卡在新能源BMS上位机的应用

使用简明教程:插入一个视频 USBCANFD-401是一款高性能的USB转双路CANFD/LIN的CANFD盒,支持单路CNA(FD)和LIN转USB通信。 通过USB接口快速接入CANFD或LIN通道,使接入CAN/CANFD/LIN网络变得轻松便捷。该设备采用金升阳电源模块和信号隔离芯片&…