使用NavHostFragment、navigation--- avtivity向fragment传值,fragment之间传值

简介: 使用NavHostFragment、navigation--- avtivity向fragment传值,fragment之间传值

使用NavHostFragment、navigation--- avtivity向fragment传值,fragment之间传值

avtivity向fragment传值 (只是向最顶上的那个fragment传值)


fragment接收activity传过来的值

//我要传的值是Bundle
        val bundle = Bundle()
        bundle.putString("type", "我要传的值")
        val controller = Navigation.findNavController(this, R.id.mine_elder_f)
        //获取Navigation的NavGraph
        val graph = controller.graph
        //set值
        val argument = NavArgument.Builder()
            .setDefaultValue(bundle)
            .build()
        //放到NavGraph中
        graph.addArgument("type", argument)
val map=NavHostFragment.findNavController(this).graph.arguments
  //这里接收的type和graph.addArgument("type", argument) 相对应
        val navArgument = map["type"]
        //接收到了传过来的Bundle
        val bundle = navArgument?.defaultValue as Bundle
        //在获取Bundle中的值
        type = bundle.getString("type")

fragment与fragment之间传值


fragmentA向fragmentB传值分为两种:一种就是两个fragment同属于一级用parentFragmentManager传值;另一种两个fragment是包含关系用childFragmentManager进行传值;(下面的例子是属于两个fragment属于同一级的)

//传值fragment
   val bundle = Bundle()
            bundle.putString("name", name)
            parentFragmentManager.setFragmentResult("30", bundle)

接收:

parentFragmentManager.setFragmentResultListener(
            "30",
            this,
            FragmentResultListener { requestKey, result ->
                name = result.getString("name").toString()
            })
目录
相关文章
|
SQL 人工智能 Dart
Android Studio的插件生态非常丰富
Android Studio的插件生态非常丰富
702 1
|
XML 自然语言处理 Java
Kotlin 使用DSL构建语法结构 看这一篇就够了~
Kotlin 使用DSL构建语法结构 看这一篇就够了~
2524 0
Kotlin 使用DSL构建语法结构 看这一篇就够了~
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
XML Java 开发工具
在Android中使用ProgressBar显示进度
在Android中使用ProgressBar显示进度
1686 2
|
Web App开发 缓存 Linux
FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
《FFmpeg开发实战》书中第10章提及轻量级流媒体服务器MediaMTX,适合测试RTSP/RTMP协议,但不适合生产环境。推荐使用SRS或ZLMediaKit,其中SRS是国产开源实时视频服务器,支持多种流媒体协议。本文简述在华为欧拉系统上编译安装SRS和FFmpeg的步骤,包括安装依赖、下载源码、配置、编译以及启动SRS服务。此外,还展示了如何通过FFmpeg进行RTMP推流,并使用VLC播放器测试拉流。更多FFmpeg开发内容可参考相关书籍。
777 2
FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之执行多条SQL语句时,使用同一个实例来运行,遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
242 1
|
开发工具 Android开发
[Android Studio]please select android sdk
[Android Studio]please select android sdk
802 1
|
数据采集 存储 数据挖掘
Python网络爬虫实战:抓取并分析网页数据
使用Python的`requests`和`BeautifulSoup`,本文演示了一个简单的网络爬虫,抓取天气网站数据并进行分析。步骤包括发送HTTP请求获取HTML,解析HTML提取温度和湿度信息,以及计算平均温度。注意事项涉及遵守robots.txt、控制请求频率及处理动态内容。此基础爬虫展示了数据自动收集和初步分析的基础流程。【6月更文挑战第14天】
970 9
|
Kubernetes Java API
软件版本号解读(语义化SemVer、日历化CalVer及标识符)
软件版本号解读(语义化SemVer、日历化CalVer及标识符)
394 3
软件版本号解读(语义化SemVer、日历化CalVer及标识符)