Kotlin:是不是可以从 Activity-1 的 Fragment 移动到 Activity-2

Posted

技术标签:

【中文标题】Kotlin:是不是可以从 Activity-1 的 Fragment 移动到 Activity-2【英文标题】:Kotlin: Is it possible to move from Fragment of Activity-1 to Activity-2Kotlin:是否可以从 Activity-1 的 Fragment 移动到 Activity-2 【发布时间】:2021-11-12 23:17:22 【问题描述】:

我是 android 开发的初学者。我在 Kotlin 中创建一个应用程序并遇到了一些问题。 我想显示另一个活动并将从中选择的数据获取到片段,但我找不到如何做到这一点......

语言:科特林 问题:是否可以如图A所示做?如果是,我是否可以就如何在 MainActivity 的 Fragment1 中显示 Activity2 并在单击 Activity2 的“选择”按钮时将项目获取到 Fragment1 获得一些建议?

    想要显示来自 Fragment1(MainActivity) 的 Activity2 想从Activity2获取选中的item到Fragment1

Picture A

【问题讨论】:

也许你不应该有单独的活动,而应该有一个单一的活动。 Android 应用程序开发正朝着整个应用程序很少有活动的方向发展,也许只有一个活动。如果您在此处使用单个活动,则您的两个片段可以共享一个 ViewModel 实例,并且“选择”片段可以在共享的 ViewModel 上调用一个函数来指示选择是什么。 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 【参考方案1】:

要启动另一个活动操作,如下所示:

带参数:

     val intent = Intent(this, ExaplesActivity::class.java).apply 
        putExtra(MESSAGE, message)
    
    startActivity(intent)

OR 不带参数:

     val intent = Intent(this, NextActivity::class.java)
 startActivity(intent)

【讨论】:

【参考方案2】:

如果我正确理解了您的问题,您似乎可以使用startActivityForResult() 来实现您想要做的事情,但它很快就会被弃用。

所以我建议使用ActivityResultLauncher

您可以在此处阅读更多信息OnActivityResult method is deprecated, what is the alternative?

【讨论】:

【参考方案3】:

使用此代码开始下一个活动

startActivity(Intent(requiredContext(), SecondActivity::class.java))

【讨论】:

以上是关于Kotlin:是不是可以从 Activity-1 的 Fragment 移动到 Activity-2的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin - 如何知道常量对象中是不是存在字符串?

为啥 Kotlin 类默认是 final 而不是 open?

Kotlin 继承

从 Java 角度深入理解 Kotlin

从 Java 角度深入理解 Kotlin

如何检测设备是不是有传感器可以在 Kotlin 中使用指南针?