Ser*_*kov 2 android kotlin android-architecture-components
我有一个密码
var exampleData = MutableLiveData<String>()
private set
Run Code Online (Sandbox Code Playgroud)
我想将设置器隐藏为MutableLiveData的值
exampleData.value = "Hi!" // still working
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法,但是所有方法都在工作!
var exampleData = MutableLiveData<String>()
private set(value) { field = value } // Working!
var exampleData = MutableLiveData<String>()
internal set // Working!
var exampleData = MutableLiveData<String>()
internal set(value) { field = value } // Working!
Run Code Online (Sandbox Code Playgroud)
如何隐藏此二传手?
属性的设置器与您无关MutableLiveData,因为它在对象本身内具有可变性。您必须将其转换为LiveData,可以使用backing属性来完成。
private val _exampleData = MutableLiveData<String>()
val exampleData: LiveData<String> get() = _exampleData
Run Code Online (Sandbox Code Playgroud)
您可以使用私下更改值,_exampleData.value = "value"并且仅公开不可变的LiveData。
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |