3

Je veux utiliser LiveData avec Kotlin et avoir des valeurs qui ne devraient pas être nulles. Comment gérez-vous cela? Peut-être un emballage autour de LiveData? La recherche de bons modèles ici .. Par exemple:Nullability et LiveData avec Kotlin

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

    init { 
     value = allDefinitions.first() 
    } 

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

Je sais que la valeur ne sera pas nulle lors de l'accès - mais je dois toujours vérifier nul ou avoir ces laid !! 'est autour.

Répondre

0

J'ai créé une propriété d'extension. Ce n'est pas super joli, mais est assez simple.

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

Utilisation

spinner.loading = myLiveData.valueNN.homeState.loading 

Je ne suis pas vendu sur annexant "NN" comme une bonne convention de nommage, mais c'est au-delà de la portée de la question :)