根据数据绑定类中的共享首选项初始化类属性

时间:2019-05-30 22:00:21

标签: kotlin data-binding

我有一个带开关的片段。我想根据是否将某个变量设置为ACTIVE或INACTIVE的枚举值来设置“已检查”值。当应用程序首次启动时,该值为INACTIVE。当应用程序用户设置特定的首选项时,下次启动时应为活动状态。

这是我目前拥有的

 enum class Status {
    ACTIVE, INACTIVE
}

var status = Status.INACTIVE
    private set(value) {
        if (field == value) return
        field = value
        binder.statusChanged()
    }

inner class Binder : android.os.Binder() {
    val active get() = status == Status.ACTIVE
    val statusChanged = StickyEvent0() .....
}

inner class Data : BaseObservable() {
    //checked
    val serviceActive: Boolean
        @Bindable get() = binder.active.....
}

private val data = Data()
private val binder = Binder()
init{
    binder.statusChanged[this] = data::onStatusChanged
}

在我的片段中,我有

        <Switch
            android:checked="@{data.serviceActive}"
            android:clickable="false"/>

基本上,我想更改它,而不是

var status = Status.INACTIVE

我会有类似

 var status = functionToCalculateStatus()

因此,如果逻辑返回“ ACTIVE”,则开关的值为true / checked

有什么想法吗?

0 个答案:

没有答案