[英]Spinner Adapter from LiveData
Is it possible to construct ArrayAdapter
for Spinner
from LiveData<List<T>>
instead of normally List<T>
? 是否可以从
LiveData<List<T>>
而不是通常的List<T>
构造用于Spinner
ArrayAdapter
?
What is the best practice to bind a ViewModel's LiveData returned value to a Spinner
? 将ViewModel的LiveData返回值绑定到
Spinner
的最佳实践是什么?
If It is exactly what do you mean, so: 如果这正是您的意思,那么:
class MyVM : ViewModel() {
...
private val mSpinnerData = MutableLiveData<List<String>>()
...
fun fetchSpinnerItems(): LiveData<List<String>> {
//fetch data
mSpinnerData.value = <some fetched list of Strings>
return mSpinnerData
}
}
And after in your activity/fragment: 在您的活动/片段之后:
class MyActivity : AppCompatActivity() {
private lateinit var mViewModel: MyVM
...
override fun onCreate(outState: Bundle?) {
//initialize your view model here...
mViewModel.fetchSpinnerItems().observe(this, Observer { spinnerData ->
val spinnerAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, spinnerData)
mSpinner.adapter = spinnerAdapter
})
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.