美文网首页
DataBinding+ViewModel+LiveData的使

DataBinding+ViewModel+LiveData的使

作者: 奔跑的佩恩 | 来源:发表于2023-07-16 14:10 被阅读0次

前言

之前我们介绍了DataBinding的相关使用,大家感兴趣的话,可参看以下文章
DataBinding(一) — 基本使用
DataBinding(二) — 加载图片
DataBinding(三) — BaseObservable,ObservableField实现数据双向绑定
DataBinding(四) — 在RecyclerView上的使用

今天我们就来学习下DataBinding+ViewModel+LiveData的使用。

  1. DataBinding前置准备
  2. MainActivity中使用
  3. MainActivity类对应布局文件activity_main.xml
  4. ViewModel中各方法实现
  5. 需要注意的问题
  6. 效果图

先来波效果图


1.gif

一. DataBinding前置准备

在使用DataBinding之前,我们需要添加DataBinding相关配置,具体的大家可参考文章DataBinding(一) — 基本使用
ViewModel基本使用不了解的,可参考以下文章
ViewModel的使用
LiveData使用不了解的,可参考以下文章
LiveData的使用
这里就不再赘述了。

二 MainActivity 中使用

下面以实现两个战队(A队,B队)的比分记录为例进行讲解。
我们将具体的分数加减,撤销,重置等逻辑放到自定义的MainViewModel中处理。在MainActivity中要处理DataBinding加载布局,MainViewModel初始化等问题,下面给出MainActivity代码:

class MainActivity : AppCompatActivity(){

    private lateinit var mBinding: ActivityMainBinding
    private lateinit var mainViewModel: MainViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //加载布局
        mBinding = DataBindingUtil.setContentView(this,R.layout.activity_main)

        initView()
        initData(savedInstanceState)
        setListener()
    }

    private fun initView(){

    }

    private fun initData(savedInstanceState: Bundle?){
        mainViewModel = BaseViewModel.getViewModel2(this@MainActivity,savedInstanceState,null,MainViewModel::class.java) as MainViewModel
        mBinding.viewModel = mainViewModel
        //dataBinding绑定activity感知生命周期
        mBinding.lifecycleOwner = this
    }

    private fun setListener(){

    }

}

三. MainActivity 类对应布局文件activity_main.xml

分数的显示,以及对应的按钮点击事件,是直接在MainActivity对应的布局文件activity_main.xml中写的,现在让我们看看activity_main.xml代码:

相关文章

  • 借你耳朵使使

    最近,偶然发现有音频类的APP很火,便也下载了一个。这个还真不错:小说、相声、童话故事、古诗词解读……几乎囊括了所...

  • 使的慌

    邻家嫂子从车前头绕到这边时看见招娣儿扶着车门儿站到地上了,忙走几步过来,扶住招娣儿说,“下来了娣儿,我还说过来扶着...

  • 使我们脆弱的,也使我们美丽

    一年之中,总有那么一两段时间,觉得自己很没用,好像什么事情都做不好,或者遇到一些事情,总是难以用完美的姿态去面对。...

  • 君子使物,不为物使

    “君子使物,不为物使”是我曾读《菜根谭》中所看到的一句话,当时这句话引起了我的主意,我想起曾经自己深受手机的控制而...

  • 谁借我点脑子使使

    一直以来,我都坚信自己的脑容量太小,脑子从来没够用过,正如天气预报从来没准过一样。 有热心的不服气的网友(俗称轴脾...

  • 君子使物,不为物使

    我愿意深深地扎入生活,吮尽生活的骨髓,过得扎实,简单,把一切不属于生活的内容剔除得干净利落,把生活逼到绝处,用最基...

  • 君子使物,不为物使

    《世说新语》中记载了两则发人深省的小故事: 一则是“阮裕焚车”的故事——阮裕曾有一辆非常好的车子,无论谁来借,他都...

  • 使人快乐使己快乐

    “哎,你发现没有,给别人带来快乐的同时,自己也会获得同样的快乐,甚至是加倍的快乐。” “是吗?” “这还用怀疑吗?...

  • 学习使我充实,使我的内心平静

    下午从教室回到宿舍后,心情一直很低沉,就一瞬间,好像失去了对生活所有的希望和兴趣。我感觉我没有心,我的心毫无感觉...

  • Android LocalBroadcastManager 的使

    我们知道Android中的广播(Broadcast)主要用于应用间的通信,这种通信机制依赖于Binder通信机制及...

网友评论

      本文标题:DataBinding+ViewModel+LiveData的使

      本文链接:https://www.haomeiwen.com/subject/ykfwudtx.html