首页
学习
活动
专区
工具
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和数据类中。

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

相关·内容

  • 如何构建Android MVVM应用程序

    Databinding 是一种框架,MVVM是一种模式,两者的概念是不一样的。我的理解DataBinding是一个实现数据和UI绑定的框架,只是一个实现MVVM模式的工具。ViewModel和View可以通过DataBinding来实现单向绑定和双向绑定,这套UI和数据之间的动态监听和动态更新的框架Google已经帮我们做好了。在MVVM模式中ViewModel和View是用绑定关系来实现的,所以有了DataBinding 使我们构建Android MVVM 应用程序成为可能。   之前看了很多关于DataBinding的博客和相关的一些Demo,大多数就是往xml布局文件传入一些数据,然后把这些数据绑定到控件上( 如TextView binding:text=“@{user.name} ),接着在这些控件上(如Button binding:setOnClickListener="@{user.listener}") 设置一些事件到控件上,基本讲述都是DataBinding的基本用法。但是并没有人告诉你把一个onClickListener 写到一个类并把这个listener绑定到xml里面上是不是不太好,也没有人告诉你这个和xml布局绑定的ViewModel类应该放哪些数据,应该做什么事?应该如何设计?更是很少有博文来告诉你在Android 中如何通过Data Binding 去构建MVVM 的应用框架。这也就是是本篇文章的重点。接下来,我们先来看看什么是MVVM,然后在一步一步来设计整个应用程序框架。

    01
    领券