分类: kotlin

Android之kotlin中匿名委托

在很多时候我们都需要向一个方法传递一个interface作为回调使用,以前在java中很好实现,直接new 一个定义的interface就好了,这种方式是传递匿名委托,但在kotlin中怎么写呢?其实刚开始写我很想使用new这种方式来写但发现语法错误啊,苦恼啊。于是找了一些资料来看,才明白应该使用如下语法来写 obje…

阅读全文 »
已阅读 405 次

Android databinding的使用

在之前没有使用databinding的时候,总是感觉databinding的实现很神奇所以一直没有敢去触碰这一块,还是按照很老的方式去写,习惯新setContentView,然后findViewById,然后挨个赋值,挨个view设置点击事件,这样写很繁琐也容易丟落内容,今天狠下心来初步研究了一番databinding…

阅读全文 »
已阅读 421 次

Android获取设备唯一标志的几种方式

在我们开发过程中发现有很多需求需要获取设备的唯一标志,这是个很头疼的问题,有很多种方式,但往往不太靠谱,有的是卸载了程序再安装会变有的是设备重置后会变,有的则是和设备硬件有关。下面我们来讨论一下。 1.通过User Email或通过用户的手机号,非常不靠谱,因为手机号和Email都有可能会变,而且还有很多限制。 第一个…

阅读全文 »
已阅读 165 次

Android获取定位(二)

如果看过之前我写的那篇获取定位的文章在你看到这个文章的的时候也许你会感到奇怪,前边已经写过一篇,为什么又写一篇?由于前边研究的不太透彻会有几率获取不到定位,所以经过再次研究可以用以下写法,这种写法添加了GPS更新的监听,如果用getLastKnownLocation直接获取不到可以添加GPS更新的监听,如果一旦拿到定位…

阅读全文 »
已阅读 513 次

Android获取当前定位

昨天写了一个获取当前定位的Demo,但发现不能及时获取到定位信息在第一次安装,是因为系统默认有显示通过gps来获取定位,但实际上这样获取一般是第一次会获取不到,所以通过搜索相关资料和文档后来发现应该是按照network再gps这样获取比较靠谱,一般只要开启了定位并且获取到了获取定位的权限一般都能取到定位信息。 1. 首…

阅读全文 »
已阅读 442 次

Android 获取当前定位

今天试着写了一个android获取定位的Demo贴上来以便以后查看,其中涉及到定位权限的判断以及获取 package com.lmm.locationdemo import android.Manifest import android.content.Context import android.content.pm…

阅读全文 »
已阅读 308 次

kotlin 类的访问修饰符使用总结

在学习kotlin的过程总结了一下类的访问修饰符的用法,我把我的总结总结为一下几点 1. 默认定义声明的类是final的,这种类不能被集成重写,只能默认使用其成员。 例如 class Animated { var isAnimating:Boolean = false fun animate() { } } 那么如果想…

阅读全文 »
已阅读 448 次

kotlin学习之类委托

我刚看到这个词的时候感觉很蒙,没见过这样的叫法啊,类还叫委托,于是就研究了一会,这里说一下我自己对类委托的认识,我感觉类委托其实就是扩展了一个类型,为它能添加新的功能并且能不去继承这个类,从而不过多的重写方法, 只需要扩展自己需要添加功能的方法就行了。 例子 class ClassDelegate<T>(v…

阅读全文 »
已阅读 300 次

kotlin 学习之扩展函数

记得以前写swift的时候有扩展这么一个方式,就是可以通过写extension来给类扩展新的方法,在今天看kotlin扩展方法的部分,两种实现其实差不多。这里不对swift的扩展细说,具体写法可以自己参照网上的很多例子,下面我们来看kotlin的扩展和使用。 fun String.lastChar(): Char { …

阅读全文 »
已阅读 484 次

kotlin学习之顶层函数

像我们在做项目的过程中总会用到一些工具类,有的是处理字符串的有的是处理其他数据的,往往这些方法都不会写在某个功能模块的类里,而是写在单独的什么Util这些工具类中,往往这些方法或函数会声明成static的方法或函数,这样我们可以在处理相关数据的时候去直接不实例化而进行调用,那么在kotlin中有一种写法叫做顶层函数,这…

阅读全文 »
已阅读 1,061 次

kotlin学习定义方法的时候参数带默认值

在开发过程中我们会遇到很多种在类中方法的不同重载,有些方法的重载很多个参数,但在我们使用时候有些参数大部分情况是有默认值的,那么我们为什么不减少一些重载,给一些参数默认值,从而在使用时候选择性的传递参数。就像下面这段代码定义,我们就可以只传递第一个参数就可以完成调用,如果这样定义方法可以省去了很多重载 fun <…

阅读全文 »
已阅读 243 次