Kotlin:为什么有些代码只能在OnCreate of Activity中运行

问题描述 投票:0回答:1

我是开发人员,试图了解一些概念。有人可以请你帮我下面吗?这让我疯了!

请看一下这段代码:

    val csvRawText = applicationContext.assets.open("sgsraagadata.csv").bufferedReader().use {
        it.readText()
    }

这就是我正在阅读我导入资产的csv文件。你能帮我理解一下吗

  1. 当我在OnCreate之外运行它以及我的其他变量声明和初始化时,为什么这段代码不起作用(致命空指针错误)?
  2. 为什么它也不能在一个不是Activity的单独类中工作?我有一个名为csvFile的独立类,我希望保存这段代码,无论我把它放在哪里,它都行不通。
android kotlin oncreate applicationcontext
1个回答
0
投票

之所以会发生这种情况,是因为在调用onCreate()方法之前未初始化applicationContext。在其他类中,您无法获取applicationContext,因为只有代表上下文的类(如活动类或服务)才会将其返回给您

© www.soinside.com 2019 - 2024. All rights reserved.