使用 kotlin 开发 android 遇到的问题
使用 kotlin 开发 android 遇到的问题
本篇主要总结一些在 java 中写的代码在 kotlin 中的写法,不定期更新。。
2018.4.4 更新
用 kotlin 的方式自定义回调事件(kotlin函数参数)
https://blog.csdn.net/Captive_Rainbow_/article/details/79818279
2018.3.21 更新
Kotlin之自定义 Live Templates(模板代码)
http://blog.csdn.net/Captive_Rainbow_/article/details/79642244
2017.12.6 更新
kotlin 1.2 版本新增了一个针对 lateinit 标记的变量的判断,判断变量是否已经完成初始化 ::mMainPresenter.isInitialized
@Inject lateinit var mMainPresenter: MainPresenteroverride fun onDestroy() {/*(1.2版本已发布,已解决)权限更改后销毁activity时,这里会报错变量没有初始化等 kotlin 1.2 版本再解决 https://blog.jetbrains.com/kotlin/2017/09/kotlin-1-2-beta-is-out/*/if (::mMainPresenter.isInitialized) {mMainPresenter.detachView()}super.onDestroy()}
kotlin 拓展函数
- 关于 kotlin 拓展函数,全部可以写到一个 kotlin file 里边,这样方便管理,就像工具类那样
2017.12.5 更新
匿名内部类
比如实现自定义的点击事件
java 中:
kotlin 中:
拿到 class 对象
java 中:
Intent intent = new Intent(context, MainActivity.class);
context.startActivity(intent);adapter.register(TalkOpenAnswerModel.class, talkOpenAnswerViewProvider);
kotlin 中:
val intent = Intent(context, MainActivity::class.java)context.startActivity(intent)adapter.register(LogOutBinderModel::class.java, logOutViewBinder)
工具类的写法
java 中:
public class DeviceUtils {/*** 获取屏幕的高度 单位/px*/public static int getScreenHeight(Activity activity) {return getDisplayMetrics(activity).heightPixels;}
}
kotlin 中:
object DeviceUtil {/*** 得到屏幕的高** @param context* @return*/fun getScreenHeight(context: Context): Int {val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManagerreturn wm.defaultDisplay.height}
}
单例模式
java 中:
public class ImageLoader {public static ImageLoader getInstance() {return SingletonLoader.INSTANCE;}private static class SingletonLoader {private static final ImageLoader INSTANCE = new ImageLoader();}
}
kotlin 中:
class ImageLoader {companion object {val INSTANCE = ImageLoader()}
}
网络请求实体类
- java 中实体类只能一个一个的类文件创建
- kotlin 中可以创建一个 kotlin 文件,然后创建多个 data class 作为实体类
java 中:
public class Uuid {private String uuid;public Uuid(String uuid) {this.uuid = uuid;}public String getUuid() {return uuid;}public void setUuid(String uuid) {this.uuid = uuid;}
}
kotlin 中:
/*** Created by wendong on 2017/11/15 0015.* Email: wdeo3601@163.com* Description:*/
data class BillReqModel(@SerializedName("time_stamp") var timeStamp: String)data class BillRespModel(@SerializedName("list") var list: List<BillBinderModel?>?,@SerializedName("total_income") var totalIncome: String?, //150@SerializedName("total_pay") var totalPay: String?, //42@SerializedName("bill_when_empty") var billWhenEmpty: String?
)
使用 kotlin 开发 android 遇到的问题相关推荐
- 用Kotlin开发android平台语音识别语义理解应用
用Kotlin开发android平台语音识别,语义理解应用(olamisdk) 转载请注明CSDN博文地址:http://blog.csdn.net/ls0609/article/details/75 ...
- 用Kotlin开发android平台语音识别,语义理解应用(olamisdk)
本文使用Kotlin开发Android平台的一个语音识别方面的应用,用的是欧拉密开放平台olamisdk. 1.Kotlin简介 Kotlin是由JetBrains创建的基于JVM的编程语言,Inte ...
- 使用Kotlin开发Android应用 - 环境搭建 (1)
一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...
- 使用Kotlin开发Android应用初体验
使用Kotlin开发Android应用初体验 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之 ...
- kotlin开发Android入门篇八Kotlin开发Android的基本使用
基础篇:Kotlin开发Android的基本使用 使用AndroidStudio3.0及以上开发Kotlin在新建项目中勾选这个选项则会默认开发语言为Koltin,然后再gradle(Project的 ...
- 用 Kotlin 开发 Android 项目是一种什么样的感受?(二)
前言 前面我已经写了一篇名为<用 Kotlin 开发 Android 项目是一种什么样的感受?>的文章.文中多数提到的还是 Kotlin 语言本身的特点,而 Kotlin 对于 Andro ...
- 使用Kotlin开发Android应用
作者:snowdream Email:yanghui1986527#gmail.com QQ 群: 529327615 原文地址:https://snowdream.github.io/blog/20 ...
- Kotlin开发Android
Kotlin开发Android<第一行代码> Kotlin简单语法 变量 1. 关键字var和val 2.不必显式声明变量类型 3. 变量的类型 函数 函数的定义 语法糖 流程控制 条件控 ...
- [Android]使用Kotlin开发Android(二)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4829007.html [TOC] 使用Kotlin+OkHtt ...
- IDEA基于kotlin开发android程序配置小结
IDEA功能极其强大,和微软的宇宙第一IDE不相上下.用了很长时间,对它配置的完善性产生了近乎迷信的感情.似乎只要走正常渠道,用它来配置,没有不成功的. IDEA是开发android原生程序的利器,a ...
最新文章
- android按钮最底,Android:点击按钮后布局上的动画,最低SDK版本为14
- 出口印度海运注意事项
- Samba平台搭建和用户自行修改密码环境搭建笔记
- 腾讯面试Android必问11题,我说的,不信就来看看
- 用fputc()函数以字符串形式写入字符到磁盘文件
- python 散点图 不同颜色_python – pandas – 每个点都有不同颜色图例的散点图
- 如何安装Linux操作系统
- 安卓学习笔记29:使用SQLite数据库
- 38个MySQL数据库的小技巧
- CocoaPods 报错 [!] Error installing JSONModel
- linux 下 sudo 指令不需要输入密码的配置
- phpQuery占用过多内存的解决方法
- 利用PS 调整 pdf清晰度
- java 实现 PDF 转 TIF 【彩色压缩版】
- 系统架构设计师考试心得与经验
- 小米造车follow苹果路线?智能驾驶能力是个关键问题
- HTML——<blockquote>与<q>的区别
- IJCAI-18 阿里妈妈搜索广告算法大赛亚军解决方案
- springboot-01
- Angular JS introduce