使用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()
            })
目录
相关文章
|
7月前
|
JavaScript
Vue子组件调用父组件方法并传参的5种方式:$emit触发、传入子组件function、访问父组件$parent.function、用inject关联父组件provide的方法、用window.fun
Vue子组件调用父组件方法并传参的5种方式:$emit触发、传入子组件function、访问父组件$parent.function、用inject关联父组件provide的方法、用window.fun
Flutter | 子widget调用父widget方法报 Tried calling: call()
在学Flutter状态管理时,需要子Widget调用父Widget,报如下错误:
121 0
Flutter | 子widget调用父widget方法报 Tried calling: call()
|
Java API Android开发
android fragement之间互相传递参数
android fragement之间互相传递参数
fragment嵌套viewpager不显示
fragment嵌套viewpager不显示
192 0
|
Android开发
Activity、Window、View三者关系
目录介绍 01.Window,View,子Window 02.什么是Activity 03.什么是Window 04.什么是DecorView 05.什么是View 06.关系结构图 07.Window创建过程 08.
1012 0
|
Android开发 存储 开发工具
|
Android开发 数据格式 XML
Android Activity之间的传值示例
版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.
802 0
Fragment之间传值
Activity:      String myArguments;    public String getarguments() {   return myArguments;  }     public void setarguments(String title) {   this.
937 0