【问题标题】:Android Room database - when all rows are loadedAndroid Room 数据库 - 加载所有行时
【发布时间】:2019-09-10 17:36:06
【问题描述】:

我正在尝试使用那里描述的 Android Room:https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#13 源码:https://github.com/googlecodelabs/android-room-with-a-view/tree/kotlin/app/src/main/java/com/example/android/roomwordssample

我想在加载所有记录时选择一条记录。 我试过在“onCreate(savedInstanceState:Bundle?)”函数的末尾添加这段代码:

        var rnd : Random = Random(System.currentTimeMillis())
        var words : List<Word>? = wordViewModel.allWords.value
        // now wordViewModel.allWords.value is NULL
        if (words != null) {
            var textViewRandomWord: TextView = findViewById<TextView>(R.id.textView)
            textViewRandomWord.text = words.get(rnd.nextInt(words.size)).word
        }

但是在这个时候是变量 wordViewModel.allWords.value 仍然为空。

您能帮我,在哪里添加此代码(或任何类似代码)以从所有保存的记录中获取随机记录并在创建活动时显示它? 谢谢。

【问题讨论】:

    标签: android database android-room


    【解决方案1】:

    wordViewModel.allWords 是 [LiveData] : https://developer.android.com/topic/libraries/architecture/livedata 对象,因此很容易被观察者获取价值

    wordViewModel.allWords.observe(this, Observer { words -> // Do your implementation })

    【讨论】:

      猜你喜欢
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 2019-01-22
      • 2020-03-22
      • 2018-10-02
      相关资源
      最近更新 更多