public static Boolean в котлин - PullRequest
       20

public static Boolean в котлин

0 голосов
/ 14 января 2019

Я хотел знать, как Я определяю статическую переменную в Kotlin, которая может быть использована в других классах что не окончательно. Потому что данные меняются

Пример Java:

public static  Boolean ActivityIsRuning = false;

Ответы [ 4 ]

0 голосов
/ 14 января 2019

При добавлении к @Todd и @Willi Mentzel, если вы хотите сгруппировать эти настройки в общей области, вы можете использовать простой верхний уровень object.

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

и к этому можно получить доступ в любом месте кода (внутри Activity, Service или в любом месте), например:

if( GlobalSettings.isDrinkingCocoCola ){
    // do something
} else {
   GlobalSettings.isDrinkingCocoCola = false
}
0 голосов
/ 14 января 2019

Вы можете определить статические переменные в companion object любого класса. Если вы сделаете его var вместо val, он может изменить значения:

class MyClass {
    companion object {
        var activityIsRunning: Boolean = false
    }
}
0 голосов
/ 14 января 2019

Для этого есть три способа:

1) Верхний уровень / глобальная декларация

Объявите переменную вне любого класса или функции, и она будет доступна из любого места:

var activityIsRunning = false

2) объект (синглтон из коробки)

object StaticData {
    var activityIsRunning = false
}

Доступно так:

StaticData.activityIsRunning

3) Класс с сопутствующим объектом (как уже предложил Тодд)

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

Доступно так:

Config.activityIsRunning
0 голосов
/ 14 января 2019

Для этого вы должны создать объект-компаньон. Ваш код в Kotlin будет выглядеть примерно так:

class Foo {

    companion object {
         lateinit var instance: Foo
    }

    init {
        instance = this
    }
}
...