Котлин: Почему какой-то код работает только в OnCreate of Activity - PullRequest
0 голосов
/ 18 сентября 2018

Я новичок в разработке, пытаюсь разобраться в некоторых понятиях.Может ли кто-нибудь удивительный, пожалуйста, помогите мне ниже?Это сводит меня с ума !!

Пожалуйста, взгляните на этот кусок кода:

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

Вот как я читаю мой CSV-файл, который я импортировал в Assets. Не могли бы вы помочь мне понять :

  1. Почему этот код не работает (фатальная ошибка нулевого указателя), когда я запускаю его вне OnCreate вместе с другими объявлениями и инициализациями переменных?
  2. И почему он также не работает внутри отдельного класса, который не является Activity?У меня есть отдельный класс csvFile, в котором я хотел разместить этот код, и независимо от того, где я его поместил, он не работает.

1 Ответ

0 голосов
/ 18 сентября 2018

Это происходит потому, что applicationContext не инициализируется до вызова метода onCreate ().В других классах вы не можете получить applicationContext, потому что только классы, которые представляют контекст, такой как класс деятельности или служба, возвращают его вам

...