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

网站标准尺寸做电脑网站宽度

网站标准尺寸,做电脑网站宽度,建筑网络图,种子在线资源搜索神器Android LiveData 介绍 系列文章目录前言一、LiveData是什么#xff1f;二、简单使用依赖测试数据准备1.创建可观察的livedata2.观察它3.更新它 总结 系列文章目录 Android LiveData 介绍#xff08;本文#xff09; 前言 本系列根据官网介绍Jetpack中的数据通信组件… Android LiveData 介绍 系列文章目录前言一、LiveData是什么二、简单使用依赖测试数据准备1.创建可观察的livedata2.观察它3.更新它 总结 系列文章目录 Android LiveData 介绍本文 前言 本系列根据官网介绍Jetpack中的数据通信组件本文介绍LiveData。在介绍LiveData之前我们需要知道安卓官方推荐我们在viewmodel中处理业务或者数据的一些运算和网络请求并通过观察数据的变化来通知activity或者fragment数据更新。 一、LiveData是什么 我们先用官方的话来解释一下 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同LiveData 具有生命周期感知能力意指它遵循其他应用组件如 activity、fragment 或 service的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。 那么根据官网的总结我们翻译成人话就是Livedata是用于储存我们需要数据的一个类那么为什么不直接new一个对象要多加一个LiveData呢因为LiveData可以让使用到这个数据的组件的生命周期和这个数据同步 以activity为例当activity走到onDestroy时数据也同样会被销毁因此也避免了activity销毁了activity持有的对象还活着而导致内存泄漏。 简单来说Livedata就是为了解决这个问题而诞生的它让开发者可以将更多的精力投入到具体的逻辑和功能中而不是陷落在各个组件的生命周期的管理中。 二、简单使用 前面说到LiveData 是一种可观察的数据存储器类因此Livedata的使用可以简单的分为三步及创建可观察的livedata观察它更新它 我们先看效果然后实战 通过livedata更新数据 点击后 依赖 import androidx.lifecycle.LiveDataLiveData属于lifecycle因此无需引入额外依赖最新版的andorid studio 建项目就自带 测试数据准备 因为国庆节写的这篇文章所以本例就写一个过国庆的例子。 布局文件 ?xml version1.0 encodingutf-8? androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityTextViewandroid:idid/tv_national_dayandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textHello World!app:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparent /Buttonandroid:idid/bt_national_dayandroid:text玩一天android:layout_widthmatch_parentandroid:layout_heightwrap_contentapp:layout_constraintTop_toBottomOfid/tv_national_day//androidx.constraintlayout.widget.ConstraintLayoutMainActivity class MainActivity : AppCompatActivity() {private lateinit var textView : TextViewoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)initView()}private fun initView() {textView findViewById(R.id.tv_national_day)val button findViewByIdButton(R.id.bt_national_day)button.setOnClickListener {//todo 数据请求}}}1.创建可观察的livedata 新建MainViewModel类 import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData/*** author zengyifeng* date createDate:2023-09-30* brief description ViewModel*/ class MainViewModel(application: Application) : AndroidViewModel(application) {var nationalDayLiveData : MutableLiveDataInt MutableLiveData(8)}国庆节嘛咱们要有点国庆味道上例代码通过创建MutableLiveData 创建了一个名为nationalDayLiveData 的可观察对象。MutableLiveData 是基于LiveData的封装暴露了setValue和postValue方法 在MainActivity中添加关于viewmodel的初始化这时MainActivity代码如下 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextViewclass MainActivity : AppCompatActivity() {private lateinit var viewModel : MainViewModel private lateinit var textView : TextViewoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)initView()initViewModel()}private fun initView() {textView findViewById(R.id.tv_national_day)val button findViewByIdButton(R.id.bt_national_day)button.setOnClickListener {//todo 数据请求}}private fun initViewModel() {viewModel MainViewModel(application)}}2.观察它 在本例中数据会在activity中更新所以观察livedata对象也将进行在activity中因此我们在MainActivity中新增观察livedata的代码initObserve() 代码如下示例 private fun initObserve() {viewModel.nationalDayLiveData.observe(this) {textView.text 国庆节还有$it 天}}3.更新它 因为app并不应该在activity中处理数据的具体逻辑所以更新的方法在viewmodel中编写。 viewmodel的代码更新为如下 import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData/*** author zengyifeng* date createDate:2023-09-30* brief description ViewModel*/ class MainViewModel(application: Application) : AndroidViewModel(application) {var nationalDayLiveData : MutableLiveDataInt MutableLiveData(8)fun setNationalDay(day : Int){val myDay getNationalDay(day)nationalDayLiveData.postValue(myDay)}/*** 伪代码实际业务中这里的返回应该是网络请求获取返回数据这样子*/private var nationalDay 8private fun getNationalDay(day : Int): Int{nationalDay - dayreturn nationalDay}}而activity代码最终如下 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextViewclass MainActivity : AppCompatActivity() {private lateinit var viewModel : MainViewModel private lateinit var textView : TextViewoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)initView()initViewModel()initObserve()}private fun initView() {textView findViewById(R.id.tv_national_day)val button findViewByIdButton(R.id.bt_national_day)button.setOnClickListener {viewModel.setNationalDay(1)}}private fun initViewModel() {viewModel MainViewModel(application)viewModel.setNationalDay(0)}private fun initObserve() {viewModel.nationalDayLiveData.observe(this) {textView.text 国庆节还有$it 天}} }上例代码中我们通过MutableLiveData 初始化了一个 nationalDayLiveData对象然后通过observe观察nationalDayLiveData对象最后通过postValue更新nationalDayLiveData对象最后将数据更新在UI上。 总结 以上就是今天要讲的内容本文简单介绍了LiveData是什么及其使用通过创建观察更新六字口诀初步掌握LiveData的使用。
http://www.hkea.cn/news/14327063/

相关文章:

  • 子目录创建网站网站建设实训心得php
  • 商务网站设计做h5网站
  • 装修公司网站php源码南宁建网站必荐云尚网络
  • html网站编辑器网站开发设计框图
  • 驾校网站模版如何提升网站搜索排名
  • win7下asp网站搭建创建网站的详细步骤
  • 常州网站关键词推广58网站怎么做才有客户问
  • 个人网站建设 免费沈阳企业关键词优化
  • 北京网站优化服务广州灰色优化网络公司
  • 重庆网站制作长沙wordpress如何关闭网站
  • 岳阳网站建设企业wordpress知识付费插件
  • 百度收录率高的网站淘大象关键词排名查询
  • 湖北手机网站制作wordpress播放网易云
  • 建设银行网站不能登录密码阳江招聘网站哪里最好找工作
  • 快速建站框架汕头政务发布
  • 网站设计建设专业服务网站建设需要做什么
  • 众创空间那个网站做的好漯河网站建设茂睿科技
  • 网站建设案例信息正规的徐州网站建设
  • 千山科技做网站好不好自在源码网官网
  • 西安市社交网站制作公司做网站有必要吗
  • 免费的软件网站wordpress捐
  • 在线用代码做网站平面设计平台接单
  • js网站文字重叠全球邮登录入口
  • wordpress ip设置方法seo实战优化
  • 国外最火的网站高端网站案例网站建设
  • 长沙做痔疮东大医院de网站.湖南省住房和城乡建设厅网站
  • vs2010做网站教程阿里+wordpress
  • 怎样做网站底部导航网站制作论文范文
  • 开封网站制作公司淘宝排名
  • 丰都专业网站建设公司安卓app上架费用