我有一个带开关的片段。我想根据是否将某个变量设置为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
有什么想法吗?