当前位置: 首页 > wzjs >正文

做动态网站的软件哪个网站学seo是免费的

做动态网站的软件,哪个网站学seo是免费的,网上做问卷调查赚钱哪些网站好,中卫网站制作公司多个viewmodel之间的通信有多种方法,比如通过resposity将sharedviewmodel作为参数传递,进而完成数据通信,也可以通过一个公共的全局变量进行数据传递。本文中提供一个以singleton单例的方式进行。 1.创建单例的resposity类。 class testRes…

       多个viewmodel之间的通信有多种方法,比如通过resposity将sharedviewmodel作为参数传递,进而完成数据通信,也可以通过一个公共的全局变量进行数据传递。本文中提供一个以singleton单例的方式进行。

1.创建单例的resposity类。

class testResposity private constructor(){//创建单例companion object{private var INSTANCE:testResposity?=null@Synchronizedfun getInstance():testResposity{if(INSTANCE==null)INSTANCE = testResposity()return INSTANCE!!}}//以下为业务逻辑val data = MutableStateFlow<String>("")val _counter1 = MutableStateFlow<Int>(0)val counter1 = _counter1.asStateFlow()fun updateCounter1(){_counter1.value++if(_counter1.value==2){data.value = "second"}else if(_counter1.value == 3){data.value = "third"}}
}

2.创建测试的viewmodel1

class TestViewModel1:ViewModel() {//获取resposity单例private val resposity = testResposity.getInstance()val data = resposity.data//调用测试逻辑public fun updateCounter1(){resposity.updateCounter1()}
}

3.按照相同的方式,创建测试的viewmodel2

class TestViewModel2:ViewModel() {private val resposity = testResposity.getInstance()val counter = resposity.counter1public fun updateCounter(){resposity.updateCounter1()}
}

4.测试的compose

@Composable
fun TestViewModelScreen(modifier: Modifier = Modifier,viewModel:TestViewModel1,viewModel2:TestViewModel2,onClicked:()->Unit,onClicked2:()->Unit) {val counter1 = viewModel.data.collectAsState()val counter2 = viewModel2.counter.collectAsState();Column {Text(text = counter1.value.toString())Text(text = counter2.value.toString())Button(modifier = Modifier,onClick = onClicked) {Text(text = "更新")}Button(modifier=Modifier,onClick = onClicked2) {Text(text="更新2")}}}

5.Activity中调用代码

var viewModel1=ViewModelProvider(this).get(TestViewModel1::class.java)var viewModel2 = ViewModelProvider(this).get(TestViewModel2::class.java)TestViewModelTheme {Surface(modifier = Modifier.fillMaxSize(),){Row (modifier = Modifier.fillMaxSize(),verticalAlignment = Alignment.CenterVertically,horizontalArrangement = Arrangement.Center){TestViewModelScreen(viewModel = viewModel1,viewModel2=viewModel2,onClicked = {viewModel1.updateCounter1()},onClicked2 = {viewModel2.updateCounter()})}}}

6.结果

通过两个不同的viewModel,可以对仓库类中的一个变量进行操作,并同步可显示双方操作结果。

http://www.dtcms.com/wzjs/505601.html

相关文章:

  • 网站建设和网站设计公司在哪里西安网站seo公司
  • 发送wordpressseo排名
  • 云端网络网站百度竞价推广怎么做效果好
  • 家具公司网站模板百度一对一解答
  • 和两个黑人同时做网站夫唯seo培训
  • 禹城有做网站怎么设置自己的网站
  • 做网站要霸屏吗百度如何发布作品
  • 杭州上城区网站建设谷歌网站收录提交入口
  • 做网站商城淘宝补流量平台
  • 电子商务网站系统规划windows优化大师卸载不掉
  • 怎么找网站建设济南网络推广
  • 大良营销网站建设平台网络营销策略存在的问题
  • 做网站建设销售途径最佳磁力吧ciliba搜索引擎
  • 城阳做网站的大数据精准营销的策略
  • 做网站怎么设置背景快速优化seo软件推广方法
  • 海口专注海南网站建设百度推广开户需要多少钱
  • 登录网站怎么做内存优化大师
  • typo wordpress theme短视频seo厂家
  • 网站建设用户需求表免费下优化大师
  • 在中国做国外网站seo综合查询国产
  • 资产管理公司网站建设费用怎么入账一个关键词要刷多久
  • 免费做网站app网络推广外包注意哪些
  • 专做畜牧招聘网站的营业推广
  • 实训小结网站建设东莞百度搜索优化
  • 农业网站如何建设怎么推广一个产品
  • wordpress全部设置牡丹江网站seo
  • 企业网站建设优化机构类网站有哪些
  • 东莞企业网站seo哈尔滨seo关键词
  • 宁夏做网站的购物网站网页设计
  • 自己设计logo的网站怎么优化网络