您现在的位置是:首页 > 文章详情

6.kotlin安卓实践课程-用kotlin写第一个activity对应P层

日期:2018-05-29点击:314

简介

主要会通过安卓实战来讲解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]) } }, {})) } } 
  1. 首先看看这个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关键字

  1. 然后又回到RandomPresenter
 mModel.getRandom(type) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ res -> if (!res.error) { mView.onRandom(res.results[0]) } }, {}) 

mModel接下来几节会说到,我们主要看看这个链式调用,这是一个基本的rx异步操作,通过mModel做网络请求,然后在安卓主线程观察一旦有结果返回就通过subscribe订阅结果处理数据,并且通过mView这个引用对象去回调通知界面做显示等UI操作


欢迎一起交流,有问题加群交流

kotlin实战交流群群二维码.png
原文链接:https://yq.aliyun.com/articles/632618
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章