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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度