6.kotlin安卓实践课程-用kotlin写第一个activity对应P层
简介
主要会通过安卓实战来讲解kotlin语法和实际应用,本教程设及知识点包括框架模式mvp+mvvm, Databinding(数据绑定框架),Dagger2(依赖注入框架),DeepLink(页面路由框架),Rxjava,RxAndroid(异步操作框架),Retrofit,Okhtttp等,不过本教程重点在kotlin所以这些框架需要了解可自行百度。
针对人群:Android中级以上,kotlin入门
上一篇文章讲了MainActivity
的代码构成
MainActivity
当中有一段代码
floatingButton.setOnClickListener { mPresenter.getRandom("Android") }
它就是通过P层去请求网络,具体的定义我们先看看RandomPresenter
的构成
/** * Created by bigman on 18-05-18. */ class RandomPresenter @Inject constructor(private val mModel: RandomModel, private val mView: RandomContract.View) : RandomContract.Presenter, BasePresenter() { override fun getRandom(type: String) { addSubscription( mModel.getRandom(type) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ res -> if (!res.error) { mView.onRandom(res.results[0]) } }, {})) } }
- 首先看看这个
addSubscription
是个什么方法
/** * Created by bigman on 18-05-18. */ open class BasePresenter { var compositeSubscription = CompositeSubscription() protected fun addSubscription(subscription: Subscription) { compositeSubscription.add(subscription) } fun unSubscribe() { if(compositeSubscription.hasSubscriptions()){ compositeSubscription.unsubscribe() } } }
每个Presenter都要继承于BasePresenter,然后由BasePresenter里面的CompositeSubscription对象统一管理订阅者的订阅和解绑(rxjava2实现就是观察者模式,不了解rxjava2的可以去学习一下rxjava2)
语法点:继承
open class BasePresenter
由于kotlin中所有类和方法默认都是final的,不能直接继承或重写,需要继承的类或类中要重写的方法都应当在定义时添加open关键字
- 然后又回到
RandomPresenter
mModel.getRandom(type) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ res -> if (!res.error) { mView.onRandom(res.results[0]) } }, {})
mModel接下来几节会说到,我们主要看看这个链式调用,这是一个基本的rx异步操作,通过mModel做网络请求,然后在安卓主线程观察一旦有结果返回就通过subscribe订阅结果处理数据,并且通过mView这个引用对象去回调通知界面做显示等UI操作
欢迎一起交流,有问题加群交流
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
4.kotlin安卓实践课程-用kotlin写第一个activity(构建mvvm和mvp基本页面)
简介 主要会通过安卓实战来讲解kotlin语法和实际应用,本教程设及知识点包括框架模式mvp+mvvm, Databinding(数据绑定框架),Dagger2(依赖注入框架),DeepLink(页面路由框架),Rxjava,RxAndroid(异步操作框架),Retrofit,Okhtttp等,不过本教程重点在kotlin所以这些框架需要了解可自行百度。 针对人群:Android中级以上,kotlin入门 现在开始写我们的第一个页面代码 1.第一步创建我们的activity类 class MainActivity : BaseBindingActivity<ActivityMainBinding>() { override fun createDataBinding(savedInstanceState: Bundle?): ActivityMainBinding { return DataBindingUtil.setContentView(this, R.layout.activity_main) } override fun initView() { } } 2.这...
- 下一篇
蓝湖-设计协作平台
推荐一款专门为猿哥哥和设计师小姐姐而开发的一款高效协作软件 蓝湖 。 相信你一定会爱上她的呦。 蓝狐网址:https://www.lanhuapp.com/ 蓝湖: 能做H5、Android、iOS原型 能进行标注 能全自动切图 团队协作共享 免费 ··· ··· 我们可以看看蓝湖工作团队是怎么评价蓝湖的: "> GitHub:Fuck me on GitHub 留下你的足迹求推荐呦
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7安装Docker,走上虚拟化容器引擎之路