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

用html5做的音乐网站全国失信被执行人名单查询

用html5做的音乐网站,全国失信被执行人名单查询,酷站网,企业建站服务退役军人ViewModel 原生支持 kotlin 案例 基本案例 viewmodel 是为了保存当当前 activity 切出或者销毁时,如何保存数据,以便下一次创建新的 activity 时进行调用 首先引入 lifecycle 依赖 implementation androidx.lifecycle:lifecycle-extensions:2.2.0 之后…

ViewModel 原生支持 kotlin 案例

基本案例

viewmodel 是为了保存当当前 activity 切出或者销毁时,如何保存数据,以便下一次创建新的 activity 时进行调用

首先引入 lifecycle 依赖
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'


之后,编写一个类继承 viewmodel,在这里配置数据的存取

我们需要实现:activity 调用该 vm,设置需要获取的水果序号,然后按照序号取出水果

代码清单 QuizViewModel.kt

package com.zhiyiyi.listviewdemo.modelimport android.util.Log
import androidx.lifecycle.ViewModelclass QuizViewModel : ViewModel() {// 初始化代码块,用于提示当前vm被调用init {Log.d("vm", "启动" + this.javaClass)}// 当当前的vm被销毁之前需要执行的方法override fun onCleared() {super.onCleared()}// 当前被选中的水果序号var currentIndex = 0// 简写get方法,获取指定序号的水果名称val getFruit: String get() = fruit[currentIndex]// 在这里存储水果数据private val fruit = listOf("apple", "pineapple", "pear", "orange", "banana")
}

viewmodel 全局仅存在一个实例,故配合懒加载,可以使用 val 定义 viewmodel 常量而非使用 var

故这里使用 by lazy 函数进行懒加载操作

因版本迭代,原 ViewModelProviders.of(this) 方法已被废弃,请使用以下代码中规定的新方法

代码清单 MainActivity.kt

package com.zhiyiyi.listviewdemoimport androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider
import com.zhiyiyi.listviewdemo.model.QuizViewModel
import kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() {private val quizVM: QuizViewModel by lazy {ViewModelProvider(this).get(QuizViewModel::class.java)}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)val quizVM = ViewModelProvider(this).get(QuizViewModel::class.java)btn_submit.setOnClickListener {val index = et_username.text.toString().toInt()quizVM.currentIndex = indexet_username.setText(quizVM.getFruit)}}
}

bundle 存储

当按下返回键并退出 activity 的时候,实际上该 activity 已经被销毁了; 然而直接点击主屏幕按键,只会挂起该 activity,并不会销毁它

oncreate 函数中的 savedInstanceState: Bundle? 参数还记得吗?
其中的 bundle 可看做是一个全局数据库,当 activity 被销毁后他会依然存在
利用此特性我们可以进行数据的恢复操作

因 activity 被销毁后,会调用 onSaveInstanceState 方法,而我们恰好可以为该方法传入值并存储他,当下一次 activity 被创建的时候,就可以直接取出我们存储的值

重写 onSaveInstanceState 方法,在 activity 被销毁前存储变量

override fun onSaveInstanceState(outState: Bundle) {super.onSaveInstanceState(outState)outState.putInt("index", quizVM.currentIndex)Log.d("vm", quizVM.currentIndex.toString())
}

在 oncreate 方法中直接从 bundle 中取出值

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)val quizVM = ViewModelProvider(this).get(QuizViewModel::class.java)// 从bundle中取出值val currentIndex = savedInstanceState?.getInt("index", 0) ?: 0quizVM.currentIndex = currentIndexet_username.setText(currentIndex.toString())...
}
http://www.yayakq.cn/news/496185/

相关文章:

  • 聊城手机站网站公司电话网站建设制作确认单
  • 外国网站怎么进入html5手机网站源码下载
  • 公司做网站还是做阿里好呢衡水网站建设格公司
  • 淄博服装网站建设html5动态效果的网站是怎么做的
  • 用html5做网站的心得体会惠州外发加工网
  • 塑胶托盘东莞网站建设做直播网站开发教程
  • 营销型网站是什么龙华住房和建设局网站官网
  • 论坛做视频网站黄石规划建设局网站
  • 门户网站建设方案招标文件女人与狗做网站
  • 徐州市新沂市建设局网站建站网络公司
  • 建网站多少钱可以卖货的江苏省建设执业中心网站
  • 青岛做网站推广公司企业网站建设物美价廉
  • wordpress一键安装空间宁波seo培训
  • 受欢迎的福州网站建设旅游网站开发需求
  • 北京电子商务app网站建设大兴项目营销推广策划
  • 官网网站优化公司婚庆网站模板下载
  • 中国网站名wordpress怎么做手机端
  • 网站没有地图怎么做的只做传统嫁衣网站
  • 安徽网站建设公司来宾绍兴seo网站托管方案
  • 国内专业网站建设重庆网站建设推荐
  • 教务在线网站开发报告书厦门网站开发公司找哪家
  • 爱用网站建设百度快速收录权限
  • 汽车网站建设制作费用安徽六安网
  • 目前做网站的公司有哪些珠海营销型网站
  • 百度一下进入首页seo快速排名工具
  • 建设银行手机银行网站广州网站模块建设
  • 优化推广网站怎么做网站建设宣传 mp4
  • 电子商务网站建设的基本过程网站建设的经验总结
  • 汉中网站建设公司电话郑州建网站公司
  • 厦门网站建设教学iis 网站建设中