簡體   English   中英

LiveData的微調適配器

[英]Spinner Adapter from LiveData

是否可以從LiveData<List<T>>而不是通常的List<T>構造用於Spinner ArrayAdapter

將ViewModel的LiveData返回值綁定到Spinner的最佳實踐是什么?

如果這正是您的意思,那么:

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
  }
}

在您的活動/片段之后:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM