【问题标题】:Kotlin : Why some code only works within OnCreate of ActivityKotlin:为什么有些代码只能在 Activity 的 OnCreate 中工作
【发布时间】:2018-09-18 14:54:14
【问题描述】:

我是开发的初学者,试图了解一些概念。有人可以帮我下面的吗?快把我逼疯了!!

请看这段代码:

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

这就是我读取已导入资产的 csv 文件的方式。 你能帮我理解吗

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

【问题讨论】:

  • 因为applicationContext 在调用onCreate() 之前不会初始化,并且只能从上下文对象中调用。
  • @TheWanderer 可爱!谢谢 :) 希望有一天文档对我们初学者来说足够简单,可以自己获取!希望你可以问一个人工智能:P

标签: android kotlin oncreate applicationcontext


【解决方案1】:

这是因为在调用 onCreate() 方法之前 applicationContext 没有初始化。在其他类中,您无法获取 applicationContext,因为只有表示上下文的类(如活动类或服务)会将其返回给您

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多