首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Activity中正确设置Observable,将数据从视图模型中的API调用传递到列表的Activity + data Class中。Android Compose

在Android Compose中,您可以使用StateLaunchedEffect来设置Observable,并将数据从视图模型中的API调用传递到列表的Activity和数据类中。以下是一个示例代码,演示如何实现这个功能:

首先,创建一个数据类,用于存储列表中的数据:

代码语言:javascript
复制
data class Item(val id: Int, val name: String)

然后,在Activity中,使用MutableState来保存数据列表,并使用LaunchedEffect来观察视图模型中的API调用结果:

代码语言:javascript
复制
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组件,用于显示数据列表:

代码语言:javascript
复制
@Composable
fun MyList(items: List<Item>) {
    LazyColumn {
        items(items) { item ->
            Text(text = item.name)
        }
    }
}

在上面的示例中,我们使用LazyColumn来显示数据列表中的每个项。

请注意,上述示例假设您已经正确设置了视图模型(MyViewModel)和API调用(getItems())。您需要根据您的具体需求进行相应的调整。

通过使用上述代码,您可以在Android Compose中正确设置Observable,并将数据从视图模型中的API调用传递到列表的Activity和数据类中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券