Class 无法使用Kotlin为我的Android应用程序中的全局变量创建类

Class 无法使用Kotlin为我的Android应用程序中的全局变量创建类,class,kotlin,global-variables,Class,Kotlin,Global Variables,我试图在我的应用程序中定义一个全局变量 也就是说,属性必须是定义的或抽象的。 我已经看过并试图复制一些解决方案,但似乎无法使其发挥作用 谢谢你的建议 package com.example.app.thisweekintown import android.app.Application class GlobalVars:Application() { var isConnected:Boolean } 您可以使用名为lateinit的关键字在Kotlin中定义全局变量

我试图在我的应用程序中定义一个全局变量 也就是说,属性必须是定义的或抽象的。 我已经看过并试图复制一些解决方案,但似乎无法使其发挥作用

谢谢你的建议

package com.example.app.thisweekintown

import android.app.Application

class GlobalVars:Application() {

    var isConnected:Boolean

    }

您可以使用名为
lateinit的关键字在Kotlin中定义全局变量,而无需初始化

例:

如果在初始化之前尝试访问全局变量,则会出现以下异常

原因:kotlin.UninitializedPropertyAccessException:lateinit 属性obj/str尚未初始化

要避免异常,请参阅

但lateinit不支持基元类型

lateinit var isConnected:Boolean//'lateinit' modifier is not allowed on properties of primitive types

Ref:

您可以使用名为
lateinit的关键字在Kotlin中定义全局变量,而无需初始化

例:

如果在初始化之前尝试访问全局变量,则会出现以下异常

原因:kotlin.UninitializedPropertyAccessException:lateinit 属性obj/str尚未初始化

要避免异常,请参阅

但lateinit不支持基元类型

lateinit var isConnected:Boolean//'lateinit' modifier is not allowed on properties of primitive types

Ref:

您需要初始化变量:

或者使用JEGADEESAN在回答中描述的
lateinit

另外,如果您计划始终使用
GlobalVars
的单个实例,我相信您可能会对对象声明感兴趣:


您需要初始化变量:

或者使用JEGADEESAN在回答中描述的
lateinit

另外,如果您计划始终使用
GlobalVars
的单个实例,我相信您可能会对对象声明感兴趣:


最后我给班级打错了电话。我正在实例化该类的一个实例,而不仅仅是作为应用程序级别的一部分调用该变量。我将重写一些东西以使用ViewModels,但现在我将使用它,因为我需要继续前进

从一项活动中,我可以获得并设置以下内容:

(applicationContext as GlobalVars).setSomeVariable(true)
(applicationContext as GlobalVars).getSomeVariable()
碎片 (activity.applicationContext作为GlobalVars)。setSomeVariable(true) (activity.applicationContext作为GlobalVars).getSomeVariable()

我还重写了GlovalVars类,以显示getter和setter:

class GlobalVars:Application() {

private var isConnected: Boolean = false

fun getSomeVariable(): Boolean {
    return isConnected
}

fun setSomeVariable(someVariable: Boolean) {
    this.isConnected = someVariable
}

最后我给班级打错了电话。我正在实例化该类的一个实例,而不仅仅是作为应用程序级别的一部分调用该变量。我将重写一些东西以使用ViewModels,但现在我将使用它,因为我需要继续前进

从一项活动中,我可以获得并设置以下内容:

(applicationContext as GlobalVars).setSomeVariable(true)
(applicationContext as GlobalVars).getSomeVariable()
碎片 (activity.applicationContext作为GlobalVars)。setSomeVariable(true) (activity.applicationContext作为GlobalVars).getSomeVariable()

我还重写了GlovalVars类,以显示getter和setter:

class GlobalVars:Application() {

private var isConnected: Boolean = false

fun getSomeVariable(): Boolean {
    return isConnected
}

fun setSomeVariable(someVariable: Boolean) {
    this.isConnected = someVariable
}

谢谢…我试过了,但是如何从应用程序中的其他活动/片段访问它…谢谢…我试过了,但是如何从应用程序中的其他活动/片段访问它。。。