在Android Compose中,您可以使用State
和LaunchedEffect
来设置Observable
,并将数据从视图模型中的API调用传递到列表的Activity和数据类中。以下是一个示例代码,演示如何实现这个功能:
首先,创建一个数据类,用于存储列表中的数据:
data class Item(val id: Int, val name: String)
然后,在Activity中,使用MutableState
来保存数据列表,并使用LaunchedEffect
来观察视图模型中的API调用结果:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val itemsState = remember { mutableStateOf(emptyList<Item>()) }
LaunchedEffect(Unit) {
val viewModel = ViewModelProvider(this@MainActivity).get(MyViewModel::class.java)
val items = viewModel.getItems()
itemsState.value = items
}
setContent {
MyList(itemsState.value)
}
}
}
在上面的示例中,我们使用MutableState
来保存数据列表,并使用LaunchedEffect
来观察视图模型中的getItems()
API调用的结果。一旦数据准备好,我们将其传递给MyList
组件进行显示。
最后,在Compose中创建一个MyList
组件,用于显示数据列表:
@Composable
fun MyList(items: List<Item>) {
LazyColumn {
items(items) { item ->
Text(text = item.name)
}
}
}
在上面的示例中,我们使用LazyColumn
来显示数据列表中的每个项。
请注意,上述示例假设您已经正确设置了视图模型(MyViewModel
)和API调用(getItems()
)。您需要根据您的具体需求进行相应的调整。
通过使用上述代码,您可以在Android Compose中正确设置Observable
,并将数据从视图模型中的API调用传递到列表的Activity和数据类中。
领取专属 10元无门槛券
手把手带您无忧上云