Кажется, вы создаете приложение Global()
вручную; вам не следует этого делать.
Один Application
класс создается автоматически при запуске приложения.
Вы хотите это как глобальную переменную? Сделайте предложенный ответ следующим образом:
companion object {
var globalVariable = "initial value"
}
Поместите это в класс Global()
. Не создавайте новый экземпляр Global()
вручную. Вместо этого в своей деятельности просто позвоните Global.globalVariable = "your new value"
Кроме того, вы можете сделать это, что kotlin называет «Переменной верхнего уровня». Объявите его выше объявления глобального класса следующим образом:
var yourGlobalVariable = "default text"
class Global : Application () {
// etc.
Это может использоваться где угодно. Начните вводить его в своем приложении (без Global
, только само по себе), и оно будет импортировано.
edit
Если ваша цель - иметь глобальный Переменная, которая сохраняется между действиями, делать это с помощью класса (даже класса приложения) действительно не рекомендуется.
Рассматривали ли вы SharedPreferences
?
Получить с
PreferenceManager.getDefaultSharedPreferences(context).getString("key to access with", "default value")
И хранить с
PreferenceManager.getDefaultSharedPreferences(context).edit().putString("key to access with", "your new value").apply()