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
}
谢谢…我试过了,但是如何从应用程序中的其他活动/片段访问它…谢谢…我试过了,但是如何从应用程序中的其他活动/片段访问它。。。