Kotlin中的公共静态布尔值

时间:2019-01-14 18:06:52

标签: android variables kotlin static var

我想知道如何  我在Kotlin中定义了一个静态变量,可以在其他类中使用 那不是最终的。 因为数据在变化

示例Java:

public static  Boolean ActivityIsRuning = false;

4 个答案:

答案 0 :(得分:2)

有三种方法可以实现此目的:

1)顶级/全局声明

在任何类或函数之外声明一个变量,可以从任何地方访问该变量:

var activityIsRunning = false

2)object(开箱即用的单例)

object StaticData {
    var activityIsRunning = false
}

可以这样访问:

StaticData.activityIsRunning

3)使用companion object的类(如Todd所建议的那样)

class Config {
    companion object {
        var activityIsRunning = false
    }
}

可以这样访问:

Config.activityIsRunning

答案 1 :(得分:1)

您必须为此创建伴随对象。 您在Kotlin中的代码如下所示:

class Foo {

    companion object {
         lateinit var instance: Foo
    }

    init {
        instance = this
    }
}

答案 2 :(得分:1)

您可以在任何类的companion object中定义静态变量。如果将其设置为var而不是val,它可以更改值:

class MyClass {
    companion object {
        var activityIsRunning: Boolean = false
    }
}

答案 3 :(得分:0)

除了@Todd和@Willi Mentzel,如果您想将这些设置分组在一个公共区域下,则可以使用顶级普通object

object GlobalSettings{
    var isHomeActivityRunning = false
    var isDrinkingCocoCola = true
}

,可以在代码中的任何位置(在Activity,Service或任何地方)访问此文件,如下所示:

if( GlobalSettings.isDrinkingCocoCola ){
    // do something
} else {
   GlobalSettings.isDrinkingCocoCola = false
}