当前位置: 首页 > 面试题库 >

为什么在Kotlin中启动新的Android活动需要Java类?

吴飞语
2023-03-14
问题内容

如果要在Android中启动新的Activity,则需要将Activity传递给Intent。但是,不只是像这样传递Kotlin类:

val intent: Intent = Intent(this, SearchActivity::class)

我需要像这样将Kotlin类作为Java类传递:

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

由于我SearchActivity是.kt文件,为什么需要添加此额外的标识符?


问题答案:

Intent您正在使用的构造函数的第二个参数采用一个java.lang.Class对象。SearchActivity::class返回kotlin.reflect.KClass。您可以java.lang.Class通过访问其java属性从中获得一个。因此,您会看到的语法有些奇怪SearchActivity::class.java



 类似资料:
  • 我想在Android上启动另一个活动,但出现以下错误: 请指定构造函数调用;分类器Page2没有伴随对象 实例化类后。我应该怎么做来纠正错误?我的代码:

  • 问题内容: 在Java或Android中,有@Override注释。这是什么意思?我发现它是在方法来自子类或继承接口的方法时使用的,我想进一步了解,其他是@SuppressWarnings及其Anonation,如果是的话,java使用了多少注释以及用于什么目的。 问题答案: 这个问题在这里也很简洁地得到了回答: Android@Override用法 这是一个注释,可以用来告诉编译器和IDE,您打

  • 问题内容: 想象一下以下课程: 我想重新启动线程以防万一。这不起作用。因为线程只能启动一次。第一个问题。为什么是这样? 据我所知,我必须重新创建的每个实例并调用以再次启动线程。如果是s,这不是很实际。我必须读取旧值的当前值,创建一个新值,并使用旧值在新对象中设置参数。第二个问题:这可以用更聪明,更轻松的方式完成吗? 问题答案: 之所以以这种方式实现threading.Thread,是为了保持线程对

  • 当我尝试用Google Maps活动模板打开一个新项目时,我会遇到以下错误。 错误:(3)检索项的父项时出错:找不到与给定名称“Android:TextApparance.Material.Widget.Button.Inverse”匹配的资源。 我对此完全陌生,我试着看过类似的帖子,但我无法理解那里给出的解释。 这些错误出现在名为google_maps_api.xml的文件中

  • 我目前正在开发一个android应用程序,在那里我需要设置持久的警报,它将在特定的日期和时间触发并显示一个通知。它工作良好,但系统清除所有警报重新启动。 从其他问题中,我知道如果我为创建一个,我可以重新启动已取消的警报。我的问题是:关于那些警报,我需要保留哪些信息,以便在需要时重新武装它们? 有些人说,我需要持久化所有附加项和fire日期时间,以便在重新引导时重新创建。 其他人说,如果我只保留的,

  • 问题内容: 我知道String [] args是作为参数传递给main的字符串数组。 但是,当您不将其包含为参数时(即使您不使用它),它也会引发异常。那么为什么需要它呢?另外,为什么不能是int []或boolean []? 问题答案: 这是一个字符串,因为命令行以文本形式表示。如果要将文本转换为整数或布尔值,则必须自己做- 操作系统或Java引导程序如何确切知道您希望如何解析所有内容?我想Jav