我正在使用改造并從新聞 api 獲取資料。我想使用流,所以我在存盤庫中執行此操作:
fun getTopArticles(): Flow<List<Article>> {
return flow {
val topArticles = apiService.getTopHeadlinesArticles().articles
.map { article ->
Article(
title = article.title,
content = article.content
)
}
emit(topArticles)
}.flowOn(Dispatchers.IO)
}
視圖模型:
private val _observeTopArticles = MutableStateFlow(emptyList<Article>())
val observeTopArticles = _observeTopArticles.asStateFlow()
init {
viewModelScope.launch {
articleRepository.getTopArticles()
.collect{
_observeTopArticles.value = it
}
}
}
活動:
lifecycleScope.launch{
viewModel.observeTopArticles.collect{
if (it.isNotEmpty()){
}
}
}
我想得到這樣的東西:
[Article(I know something, some content)] etc.
但我明白了:
[android.newz.domain.Article@5f612be, android.newz.domain.Article@700f1f]
我想在 RecyclerView 中使用它。
uj5u.com熱心網友回復:
我認為你的Flow代碼很好。看起來問題是Article沒有toString()實作,所以你只是看到默認的字串表示。嘗試制作Article成資料類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/517216.html
標籤:安卓科特林改造流动
