Android学习笔记01

MVVM
最近刚开始接触kotlin,而我想要用kotlin去建构一个MVVM的架构,首先要先了解甚麽是MVVM,它与MVP有甚麽不同。
MVVM(Model-View-ViewModel)
Model:负责管理资料来源。例如Web API、SharedPreference等资料来源。
View:Activity、Fragment、layout.xml、Adapter、自定义View。View只处理显示UI及与使用者互动。
ViewModel:将Model提供的资料根据View的需要进行处理,通过DataBinding绑定到相应的UI上
介绍MVVM的同时,会同时连DataBinding一同介绍,View和ViewModel的互动都是由DataBinding负责
MVVM架构可以让程序码看起来更乾净且维护起来更容易,MVP的View和Model的同步处理大多都是手动,而MVVM则是交由binder处理,View和Model同时变更,所以只要Model正确,View就一定会正确。
下面先示范简易的单向绑定
viewmodle:


class MainViewModle  : ViewModel() {

    val currentRandomFruitName:LiveData<String>
        get() = Fakerepository.currentRandomFruitName

    fun onChangeRandomFruitClick() = Fakerepository.changeCurrentRandomFruitName()

xml:


<Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Change fruit"
            android:onClick="@{() -> viewmodle.onChangeRandomFruitClick()}"/>

<<:  离职倒数21天:「欸,蒲公英是什麽颜色?」谈工作上的沟通问题

>>:  从 IT 技术面细说 Search Console 的 27 组数字 KPI (10) :连结 - 内部连结

【JavaScript】阵列方法之some()

【前言】 本系列为个人前端学习之路的学习笔记,在过往的学习过程中累积了很多笔记,如今想藉着IT邦帮忙...

Day 29|Divi 功能练习 21 Fullwidth Menu Module 全宽选单设定

嗨呦大家好我是 Jasmine~脑袋总是胡思乱想停不下来的设计师一枚\(✪ω✪)/ 昏昏沈沈的礼拜一...

Day 9:架设 Prometheus (1)

昨天我们成功的让 Prometheus 可以采集到一些指标了,可是为了了解服务的状态,我们还需要自己...

.NET Core第13天_View常见操作_Layout布局页_PartialView部分检视_强类型视图(大量资料或物件的传递)

_Layout布局(版面配置)页 预设当我们新建好.net5 mvc专案後 比方今天新增一个空的Ra...

[区块链&DAPP介绍 Day20] contract 案例2 - 拍卖

今天来介绍第二个案例。今天的案例就以拍卖为情境设定 情境 假设要制定一定拍卖场的合约,到底要怎麽定义...