我从Firebase数据库获取问题列表并返回LiveData
。
fun getAllIssues(): MutableLiveData<IssueEntity> {
val issues: MutableLiveData<IssueEntity> = MutableLiveData()
val issuesReference = FirebaseDatabase.getInstance().reference.child("issues")
issuesReference.addValueEventListener(object : ValueEventListener {
override fun onCancelled(p0: DatabaseError?) {
}
override fun onDataChange(snapshot: DataSnapshot?) {
if (snapshot == null) {
return
}
snapshot.children.forEach({
val issueMessage = it.child("message").value.toString()
val issueTitle = it.child("title").value.toString()
val issueOwner = it.child("owner").value.toString()
issues.postValue(IssueEntity(issueTitle, issueMessage, issueOwner))
})
}
})
return issues
}
我的活动代码:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_all_issues)
val issues: MutableList<IssueEntity> = mutableListOf()
issuesList.adapter = IssuesAdapter(issues)
IssueRepository().getAllIssues().observe(this, Observer {
if (it != null) {
issues.add(it)
val issuesAdapter = issuesList.adapter as IssuesAdapter
issuesAdapter.notifyDataSetChanged()
}
})
}
但Observer仅获得第一个值。你能告诉我为什么吗?
答案 0 :(得分:1)
很抱歉这个混乱。我只需要返回MutableLiveData和MutableLiveData&gt;