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

news/2024/9/18 8:44:17/ 标签: android

系列文章目录

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() {@Overridepublic 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.ppmy.cn/news/1525540.html

相关文章

C++设计模式——Iterator迭代器模式

一,迭代器模式的定义 迭代器模式是一种行为型设计模式,它使得遍历一个容器对象中的元素变得更加简单。 迭代器模式将遍历操作从容器对象(如集合、列表)中分离出来,它通过迭代器对象来遍历容器对象中的元素&#xff0…

基于SpringBoot的求职招聘管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的求职招聘管理系统…

Java 类和对象-小结(重要)

1.类和对象:类是一个模板,抽象的,对象是一个具体的实例。 2.方法:定义和调用 3.对象的引用: (1)除了八大基本类型之外,都是引用类型。 &#…

Ubuntu20-xrdp与Windows-mstsc远程桌面连接

ubuntu端 sudo adduser yu //输入密码和确认密码,后面一路回车,新建用户yu,确保用户没有被登录 sudo apt install xrdp //安装xrdp sudo systemctl status xrdp //查看xrdp服务状态 sudo adduser xrdp ssl-cert //将用户 xrdp 添加到 ss…

Hive和Hbase的区别

Hive 和 HBase 都是 Hadoop 生态系统中的重要组件,它们都能处理大规模数据,但各自有不同的适用场景和设计理念。以下是两者的主要区别: 1. 数据模型 Hive:Hive 类似于传统的关系型数据库 (RDBMS),以表格形式存储数据…

动态ip切换过快,会引起我的账号下次登录异常吗

在网络世界中,动态IP地址的使用为用户提供了灵活性和隐私保护。然而,频繁且快速地切换IP地址可能会引起一些安全问题,尤其是在涉及到账号登录时。本文将探讨动态IP切换过快是否会导致账号登录异常,以及如何平衡IP切换的速度与账号…

k8s--pod控制器--1

Pod控制器介绍 Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类: 自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建 控制器创建的pod&#xf…

前端工程化2:从0到1的eslint插件开发教程

从0-1的eslint插件开发教程 开发eslint插件目的:根据项目需要,自定义满足项目特殊需要的校验规则是 参考eslint官方文档展开阐述 插件开发 自定义规则 单元测试 下面开始通过一个示例demo来介绍插件整个开发流程 代码中出现的方法及变量的详细解释与…

NoSQL之Redis配置与优化(2)

一、Redis高可用 Redis 高可用性 1. 持久化 目的:避免数据因进程退出等原因而丢失,通过将数据从内存保存到硬盘,实现数据备份。主要方式: RDB 持久化:将内存中的数据生成快照保存到磁盘。适合定期备份数据&#xff…

深入理解 Vue 3 中的易混淆概念:全面解析及最佳实践20240909

深入理解 Vue 3 中的易混淆概念:全面解析及最佳实践 引言 Vue 3 的发布为前端开发带来了全新的组合式 API,这一革新使得代码的可维护性和复用性大大提升。然而,随着这些新特性的引入,也带来了一些容易混淆的概念。无论你是初学者…

微积分复习笔记 Calculus Volume 1 - 1.5 Exponential and Logarithmic Functions

1.5 Exponential and Logarithmic Functions - Calculus Volume 1 | OpenStax

package.json中~1.0.0和^1.0.0有什么区别

~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.0 ~ 1.2.9 版本,但是不包括1.3.0,也就是1.2.x ^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0 注意 如果前面…

数据库运维实操优质文章文档分享(含Oracle、MySQL等) | 2024年8月刊

本文为大家整理了墨天轮数据社区2024年8月发布的优质技术文章/文档,主题涵盖Oracle、MySQL、PostgreSQL等主流数据库系统以及国产数据库的技术实操,从基础的安装配置到复杂的故障排查,再到性能优化的实用技巧及常用脚本等,分享给大…

并行计算范式的时空辩证

来读一篇早年(September 27, 2017)的文章:The network era requires new models, with interactions instead of algorithms. 这篇文章迟到了很久,我在十多年前提到过一个相关的时空辩证: CPU 在时间序顺序执行指令流,基于图灵机…

职业技能大赛背景下的移动互联网应用软件开发(Android)实训室建设方案

一、建设背景 随着科技的持续进步,移动设备已成为人们日常生活中不可或缺的一部分。据相关数据,移动互联网的使用率在近年来显著上升。在这样的背景下,移动互联技术不仅推动了科技的发展,也渗透到了智能家居、车联网、工业自动化…

blender云渲染来了,blender云渲染教程!

朋友们,成都渲染101农场blender云渲染上线了,继3DMAX/C4D/maya/UE5云渲染上线后,又上线了blender云渲染,今天,成都渲染101渲染农场用四步教会您blender云渲染! 第一步,云渲码6666注册个渲染101…

CSS Clip-Path:重塑元素边界的艺术

在Web设计中,创造独特而富有吸引力的视觉效果一直是设计师和开发者们追求的目标。CSS的clip-path属性为此提供了一个强大的工具,它允许我们定义元素的可见区域,从而以非矩形的方式裁剪图像或容器。这一特性不仅限于简单的形状裁剪&#xff0c…

深入理解Oracle数据库中的数据库链接

在Oracle数据库环境中,数据库链接(Database Link)是一种强大的特性,它允许用户从一个数据库(本地数据库)访问另一个数据库(远程数据库)中的数据。这种链接机制极大地增强了数据库的互…

一码空传临时网盘PHP源码,支持提取码功能

源码介绍 一码空传临时网盘源码V2.0免费授权,该源码提供了一个简单易用的无数据库版临时网盘解决方案。前端采用了layui开发框架,后端使用原生PHP编写,没有引入任何开发框架,保持了代码的简洁和高效。 这个程序使用了一个无数据…

对齐访问与非对齐访问

对齐访问与非对齐访问 一、对齐访问的定义对齐示例: 二、非对齐访问的定义非对齐示例: 三、对齐与非对齐访问的区别1. 性能:2. 处理器架构:3. 处理复杂度: 四、对齐与非对齐访问的实际应用1. 编译器优化:2.…