Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio Android Studio和Kotlin如何将控制从MainActivity传递到另一个类_Android Studio_Kotlin - Fatal编程技术网

Android studio Android Studio和Kotlin如何将控制从MainActivity传递到另一个类

Android studio Android Studio和Kotlin如何将控制从MainActivity传递到另一个类,android-studio,kotlin,Android Studio,Kotlin,我正在使用android studio 4.1.1和kotlin 我正在学习使用Android Studio和Kotlin编写Android应用程序。我有一个问题,一些教程和搜索线程没有为我回答。控制如何从MainActivity.kt类传递到另一个类,即:FirstFragment.kt 我在教程中学习的其他东西都做得很好,但我无法理解这一点 例如: 我用Kotlin在Android Studio中创建了一个新的基本活动应用程序。在java目录中,我看到了以下类:FirstFragment.k

我正在使用android studio 4.1.1和kotlin

我正在学习使用Android Studio和Kotlin编写Android应用程序。我有一个问题,一些教程和搜索线程没有为我回答。控制如何从
MainActivity.kt
类传递到另一个类,即:
FirstFragment.kt

我在教程中学习的其他东西都做得很好,但我无法理解这一点

例如:

我用Kotlin在Android Studio中创建了一个新的基本活动应用程序。在java目录中,我看到了以下类:FirstFragment.kt、MainActivity.kt和SecondFragment.kt

在res/layout/目录中,我看到:
activity\u main.xml
content\u main.xml
fragment\u first.xml
fragment\u second.xml

问题1)当应用程序加载到模拟器中时,我看到
fragment_first.xml
中的按钮和文本视图。这是怎么发生的?我看不到代码中的“loadfragment_first.xml”字样

MainActivity.kt
setContentView(R.layout.activity\u main)
加载该布局。activity_main.xml具有
。但是从那里,我不知道在哪里可以找到加载
fragment_first.xml
布局的代码

我相信当
fragment\u first.xml
加载时,控制权从
MainActivity.kt
传递到
FirstFragment.kt
,是吗?问题2)。这是因为onCreate函数吗


感谢您帮助我更好地理解这一点。

加载片段有多种方法。传统上,您使用FragmentManager创建一个片段事务,该事务告诉活动将片段放入视图层次结构中并开始管理其生命周期

最近,他们添加了导航组件,可以代替直接使用FragmentManager

在当前的新项目基本活动中,布局
Activity\u main.xml
包括布局
content\u main
。在
content\u main.xml
中,您将看到它包含一个
fragment
元素,该元素被设置为片段(使用
name
参数)
NavHostFragment
,它是导航组件用来承载导航xml文件中指定的子片段的特殊片段。这个
片段
元素还使用
navGraph
属性指定导航xml文件。它指定
nav_graph.xml
,您可以在
res/navigation
目录中找到它

如果打开
nav_graph.xml
,您将看到它将
FirstFragment
设置为主片段,因此这就是将其作为第一个片段的原因

基本上,控制流程是:

  • 活动的
    onCreate()
    将内容视图设置为
    Activity\u main
    ,其中包括
    content\u main
  • content\u main
    包含一个自动插入视图层次结构中的NavHostFragment,以便活动开始运行它
  • XML中的NavHostFragment设置为使用
    nav_graph
    ,这会告诉它首先加载FirstFragment

  • 加载片段有多种方法。传统上,您使用FragmentManager创建一个片段事务,该事务告诉活动将片段放入视图层次结构中并开始管理其生命周期

    最近,他们添加了导航组件,可以代替直接使用FragmentManager

    在当前的新项目基本活动中,布局
    Activity\u main.xml
    包括布局
    content\u main
    。在
    content\u main.xml
    中,您将看到它包含一个
    fragment
    元素,该元素被设置为片段(使用
    name
    参数)
    NavHostFragment
    ,它是导航组件用来承载导航xml文件中指定的子片段的特殊片段。这个
    片段
    元素还使用
    navGraph
    属性指定导航xml文件。它指定
    nav_graph.xml
    ,您可以在
    res/navigation
    目录中找到它

    如果打开
    nav_graph.xml
    ,您将看到它将
    FirstFragment
    设置为主片段,因此这就是将其作为第一个片段的原因

    基本上,控制流程是:

  • 活动的
    onCreate()
    将内容视图设置为
    Activity\u main
    ,其中包括
    content\u main
  • content\u main
    包含一个自动插入视图层次结构中的NavHostFragment,以便活动开始运行它
  • XML中的NavHostFragment设置为使用
    nav_graph
    ,这会告诉它首先加载FirstFragment

  • #灯泡刚刚亮了!非常感谢你的解释。这很有道理,还澄清了几个其他问题。非常感谢。#Tenfour04灯泡刚刚亮了!非常感谢你的解释。这很有道理,还澄清了几个其他问题。非常感谢。