2017-09-09 25 views
3

Ich möchte LiveData mit Kotlin verwenden und Werte haben, die nicht null sein sollten. Wie gehst du damit um? Vielleicht ein Wrapper um LiveData? Die Suche nach guten Mustern hier .. Als Beispiel:Nullability und LiveData mit Kotlin

class NetworkDefinitionProvider : MutableLiveData<NetworkDefinition>() { 
    val allDefinitions = mutableListOf(RinkebyNetworkDefinition(), MainnetNetworkDefinition(), RopstenNetworkDefinition()) 

    init { 
     value = allDefinitions.first() 
    } 

    fun setCurrent(value: NetworkDefinition) { 
     setValue(value) 
    } 
} 

Ich weiß, Wert nicht null sein wird, wenn Zugriff auf - aber ich werde immer für null überprüfen oder diese hässliche hat !! 's um.

Antwort

0

Ich erstellte eine Erweiterungseigenschaft. Es ist nicht super hübsch, aber es ist ziemlich einfach.

val <T> LiveData<T>.valueNN 
    get() = this.value!! 

Nutzungs

spinner.loading = myLiveData.valueNN.homeState.loading 

Ich bin auf Anfügen „NN“ nicht verkauft als eine gute Namenskonvention, aber das ist über den Rahmen der Frage :)