Kotlin中国 为您找到相关结果 77

Kotlin Android开发一些心得

一周前开始学习kotlin,现在已经在项目中开发使用了。我目前负责的项目老代码非常多,之前的java代码已经有十多万行了。所以即便使用了kotlin,也只是在新建文件的代码里使用,老代码继续用java。kotlin的好处就是完全兼容java,java调用kotlin,kotlin基本上无阻碍。 先说说为什么要转kotlin Google已经明确kotlin为第一官方语言。我相信Google的决意,就像当初毫不犹豫的抛弃eclipse转向as。kotlin已经是不可避免的大势所趋了。 Kotlin与java代码完全兼容。使用kotlin就好像只是增加了一个库。打个比方,Rxjava比较难上手吧,不懂Rxjava的人看Rxjava像看天书,更不知从何写起。kotlin学起来比Rxjava简单的多...阅读全文

博文 2017-05-31 01:02:04 Lainn

第一个kotlin项目

准备环境 下载 Android Studio 3.0以上版本 下载 gradle 4.0 基本的java环境配置 准备好以上环境就可以进行开发了 ~ 开始 打开Android Studio, Start a new Android Studio project image.png image.png 这里勾上 Include Kotlin support,一路Next,创建一个Empty Activity image.png 然后就是无尽的等待,等待构建完(这里可能需要开下代理) 完成之后,可以看到生成了两个文件,我们熟悉的MainActivity和activity_main.xml文件,不过,这里的MainActivity后后缀是.kt而不是.java MainActivity.kt pa...阅读全文

博文 2017-05-29 19:02:08 爱吃豆腐面

使用Kotlin优雅的开发Android

再也不用findViewById 做过Android开发的人都知道,布局文件写的多了,findViewById也是一个很大的工作量,而且还要先声明变量,在findViewById然后再强转成我们的控件,使用方式一般如下 TextView username; username=(TextView)findViewById(R.id.user); username.setText("我是一个TextView"); 有时候写的是不是想吐,可能有些人说现在不是有一些注解的库,如butterknife,当我们使用注解时可以不用findViewById了,使用方式如下 @BindView(R.id.user) TextView username; username.setText("我是一个TextVi...阅读全文

博文 2017-05-29 22:01:07 shitalpig

Kotlin协程(coroutines)

前言 今天看了下Kotlin的协程,觉得挺好的,写篇文章总结下。 理论 它是什么 这是别人翻译: 协程把异步编程放入库中来简化这类操作。程序逻辑在协程中顺序表述,而底层的库会将其转换为异步操作。库会将相关的用户代码打包成回调,订阅相关事件,调度其执行到不同的线程(甚至不同的机器),而代码依然想顺序执行那么简单。我的理解:子任务程协作运行,优雅的处理异步问题解决方案。 它能干什么? 我在做安卓开发,它能替换掉Handler,AsyncTask 甚至是Rxjava来优雅的解决异步问题。 Paste_Image.png 如果不用协程,常规的写法是利用回调函数,不断处理异步的方法,bc调度的过程可能还需要线程切换。 var a返回值 = A任务() B任务(a返回值){ b返回值 -> //回调方法...阅读全文

博文 2017-05-27 15:27:33 维少

Android 6.0&运行时权限 笔记

生 API 的使用 实践中问题 首先介绍一下,Android 6.0 的权限机制的变化大家都知道,从原来安装时一次性全部授权,变为在运行时才向用户申请授权。 当然在 6.0 也不是全部的权限都需要运行时授权,现在的权限分为两类: Normal Permissions,一般不涉及用户隐私,比如手机震动、访问网络等 Dangerous Permission,涉及到用户隐私的,比如访问通讯录等,这一类的权限就需要运行时授权 然后是最后的效果图: Gif 演示 因为系统原生的 API 中,如果用户选择了「不再提示」则不会再弹出申请权限的对话框。但是假设我的 APP 依靠蓝牙向设备发送信息,但用户未授予蓝牙权限,则这个 APP 就无作为了,所以要捕获到这种情况并且弹出对话框。 还有一点比较重要的,下面...阅读全文

博文 2017-06-01 18:02:08 SoftXJ

Kotlin在安卓中的一些tips

在本次谷歌IO大会上Kotlin终于转正成为安卓官方语言。虽然每年都会出来一些编程语言,不过很多都小众且容易消亡,但这次,由于Oracle和Google的在Java版权问题,以及Google的安卓生态圈保卫战等原因,这次kotlin多半会真正上位,起码在安卓开发方面,相信随着Kotlin的完善和安卓生态圈的继续成熟,java的使用将越来越少。 本文主要记录自己学习Kotlin过程中卡住的一些技术点。 1-Kotlin实现Activity之间的跳转 这点其实挺无奈的,在网上找了半天也没找到最准确,说明资源还是挺缺的。记录下,其实和java中还是比较像的。kotlin中,使用intent跳转到其它activity 其中,这里的activity都是kotlin activity: var inte...阅读全文

博文 2017-05-29 03:00:31 cysion1989

Android进程间通讯——使用Kotlin实现AIDL

导读学习了几天kotlin,想着实践下试试手,于是乎就想起了aidl,好吧,就拿它练练1.服务的两种开启方式2.使用AIDL调用远程服务ps:AndroidStudio还没配置好Kotlin开发环境的童鞋,可以先移步 AndroidStudio使用kotlin入门 Android进程间通讯 进程间通讯,可以理解为两个不同进程间进行数据交互的一个行为,AIDL是android特有的一种调用远程服务方式 一、先复习下服务的两种开启方式 服务的开启方式有两种,一种是直接startService,另一种是bindServeice;两者的区别呢?前者:服务长期后台运行,不可以调用服务里面的方法后者:可以调用服务的方法,但是不能长期后台运行因为我们是需要进行进程间通讯,所有需要使用到服务里面的方法,这里...阅读全文

博文 2017-05-30 17:02:12 _陈小平

kotlin-andorid dashboard仪表盘页面

WechatIMG1.jpeg WechatIMG2.png WechatIMG3.png 先上代码了 // 枚举图表种类 enum class ChartItemtag(var index:Int){ GoalCompletion(0), SalesFunnels(1), RecentBusiness(2) } class DashBoardFragment : StructFragment() { companion object{ val pageIds = PageId(10001,10002,10003) } data class PageId(var containerId:Int,var iconId:Int,var labelId:Int) data class ItemCh...阅读全文

博文 2017-05-31 23:02:26 奈文摩尔定律

带你全方位使用Anko库-下篇

本文接上篇,继续带大家全方位的熟悉anko库的使用。本文主要介绍的是anko库的另外两个子库,anko-coroutines和anko-sqlite库。 anko-coroutines的使用要想使用该库,必须要对协程(coroutines)的概念有一定的理解。协程对于java来说是个全新概念,但对于其它语言如c#来说,也是个发展相对成熟的一种技术。目前协程的设计还处于实验过程中,未来kotlin版本中它可能会发生一些变化,而且协程包目前位于kotlin.coroutines.experimental包下。本文主要描述的是anko库的使用,所以对于协程的介绍请移步这里: 深入理解 Kotlin Coroutine(一) 深入理解 Kotlin Coroutine(二) anko库对corout...阅读全文

博文 2017-06-07 20:02:10 CysionLiu

Kotlin 带你飞 • 实战篇

基于 Kotlin 实现一个简单的安卓新闻 App Demo。本文将完整描述工程化实现过程,有两个目标,一是学习并熟悉 Kotlin;二是对应用开发和架构迭代升级的一次简单复盘。为什么是复盘,而不直接写一篇关于架构迭代升级的文章呢?因为复盘可以更清楚的说明细节,说明为什么。是的,明白为什么很重要。也希望能对看到这篇文章的您有所帮助或启发。当然,如果发现有什么错误纰漏,还请各位大神不吝赐教,这里先谢过啦。 相关文章:Kotlin 带你飞 相关 Github 源码 版权声明:本文为 frendy 原创文章,可以随意转载,但请务必在明确位置注明出处。 000.png 在前文《Kotlin 带你飞》中,笔者介绍了 Kotlin 的优势和环境搭建,并完成了简单的 Hello World。 接下来我们一...阅读全文

博文 2017-06-10 20:02:13 frendyxzc

第一个小Demo

使用的IDE为AS2.3.1 先简单构建个Kotlin的工程,体验下Kotlin的便利性 写个只包含一个按钮的Activity,每按下弹出个Toast 步骤 AS中打开Plugins -> Install JetBrains plugins -> 输入Kotlin,装上Kotlin插件 新建一个.kt的文件,这时系统会提示需要添加依赖 可以点击提示窗口系统会自动添加 这时候就可以使用Kotlin编写内容了 //吼简单啊四不四 class MainActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setCo...阅读全文

博文 2017-05-30 12:02:07 元气渣

Kotlin

buildscript { ext.kotlin_version = '1.0.0' dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'me.tatarka.retrolambda' compileOptions { sourceCompatibility JavaVersion.VERSION_1...阅读全文

博文 2017-05-27 15:27:32 CatDog118

带你全方位使用Anko库-上篇

kotlin的伴生库-anko迭代了已经多个版本了,但是目前网上的资源主要集中在官方说明的机械翻译或者旧博客的复制/粘贴上。 本文带大家全方位的熟悉anko库的使用。anko库目前主要有四个核心库 anko-commons库,一些通用功能,集成方式:dependencies { //anko_version脚本配置,下同,本文中,该值为0.10.0 compile "org.jetbrains.anko:anko-commons:$anko_version" } anko-layout库,牛逼的dsl(领域特定语言)功能,布局的另一种代码方式,相对比较简洁,xml的简易替代。集成方式: dependencies { // Anko Layouts compile "org.jetbrains...阅读全文

博文 2017-06-04 00:24:47 CysionLiu

kotlin Android 之初见

最近谷歌宣布 kotlin 成为 Android 开发的一级语言,这个消息让很多Android开发者头疼,虽然kotlin 称100% 兼容 Java,但是作为开发者还是不得不得不去熟悉kotlin的语法与语言结构,作为头疼的Android开发者之一,在学习过程中,参考了kotlin 的开发文档,对于使用 kotlin 开发Android 总结了以下几点在最初使用kotlin时会遇到的问题 : 1. Android Studio中kotlin的环境配置 2. anko 的集成与使用 3. 简单介绍 listview的使用 记录在此,为同样头疼的小伙伴 打个样,也为自己记录以下,方便查询,如有不对之处,请谅解并指出。 正文: 1. kotlin 在studio配置 执行 Settings ->...阅读全文

博文 2017-06-09 21:00:34 duke_knight

kotlin-jvm编译过程(一)

最近花时间看了下kotlin,语法和swift很像相对于java简洁很多。在android项目里kotlin现阶段还是寄生在jvm平台的,所有的kotlin源代码都会被编译成class文件,因此学习下kotlin编译成class的过程还是很有意义的,既可以加深对kotlin语法的理解也有助于排错。这篇文章的讲解是按官方教程的顺序来的(官方教程的中文版),建议先看一遍官方教程,然后结合本文一边动手去编译一边思考,可以通过jd查看编译出来的class的内容,经过两遍学习对kotlin语法就会有一个比较清晰的认识了。 下面这几篇文章是大家整理的一些kotlin学习资料 鸿神整理的学习Kotlin吗? oschina上的一篇文章 学习Kotlin的20个实用资源 好了,下面让我们开始kotlin编译...阅读全文

博文 2017-06-14 15:02:47 typ0520

Android 新技术—Kotlin VS Java【简要总结】

Kotlin的优势:1、代码简洁,行数少,减少出错2、避免NullPointerException3、findViewById4、更容易的使用集合5、不用写Util类 一、更简单的生成类: data class Person(var name: String, var age: Int, var height: Float = 1.8f) 二、避免NullPointerException val person: Person? = null ... person?.name = "John" ? 运算符强制检查是否为空,如果是空则不继续进行 三、扩展函数,摆脱util类 fun Context.toast(text: String) = Toast.makeText(this, text, ...阅读全文

博文 2017-06-01 12:02:06 莫图安

我的Kotlin 学习之路(二)Kotlin之扩展

为什么从关键字一下就跳到扩展了?我们知道JAVA中没有扩展的概念,Kotlin中引入了扩展,如果我能预测成功的话,这将成为对JAVA最大的挑战。。。1、什么叫扩展extension? 扩展其实就是自定义原始类的方法和属性2、为什么要扩展? 当原始类中现有的方法或属性已不能满足开发需要或者开发者需要更便利、更灵活的方法及属性时使用3、扩展的种类? 扩展分为扩展方法和扩展属性4、扩展的实现及调用? 扩展实际上相当于原始类的静态方法,调用简单下面codeing先定义一个C类,一个成员方法,一个属性class C(var size:Int = 0){ fun foo (){ println("成员方法") }}//C类扩展方法 //C类本没有f()这个方法,f()是开发者自定义的,是属于C类的静态方...阅读全文

博文 2017-06-02 12:02:22 活着工作室

kotlin-kokans ——方法

kokans在线地址https://try.kotlinlang.org/#/Kotlin%20Koans/Introduction/Hello,%20world!/Task.kt 题目 要求:写一个方法,返回字符串 “ ok "答案 fun start(): String = "ok" 方法简介 方法声明 在kotlin中方法的声明使用关键字 fun fun double(i:Int):Int{ return i*2 } 方法使用 和传统的方法调用一样 val result = double(2) 使用点号(.)调用成员方法 Sample().foo() // 创建simple实例,并且调用 foo() 中缀符(这个该怎么翻译呢?操作符重载?) 当满足以下条件的时候,可以使用: 该方法是某...阅读全文

从零尝试IM聊天界面

移动端最没尝试的就属IM了,这次想拆出自己尝试的聊天界面记录下还是基于kotlin开发 WechatIMG2.jpeg 我觉得聊天有很多种,当然今天只说一对一的 屏幕快照 2017-06-11 11.32.34.png 对于消息数据的存储跟检索需要定义一些枚举来方便自己比如ItemType作为消息类型决定消息的是否发送或接收或时间line enum class ItemType(var value:Int){ Time(0), SendText(1), SendImg(2), ReceiveText(3), ReceiveImg(4) } 比如TimeType与ContentType现在只区分昨天以前、昨天与今天内容也只简单的区分文本与图片当然等服务端IM正式联用会拓展功能的 enum cl...阅读全文

博文 2017-06-11 13:02:15 奈文摩尔定律

Kotlin 第一弹:自定义 ViewGroup 实现流式标签控件

古人学问无遗力, 少壮工夫老始成。纸上得来终觉浅, 绝知此事要躬行。 – 陆游 《冬夜读书示子聿》 上周 Google I/O 大会的召开,宣布了 Kotlin 语言正式成为了官方开发语言。一时间 Android 开发者的圈子炸开了锅,各种关于 Kotlin 的资料介绍也如雨后春笋不断的冒出。 大家都对这比较关心,我觉得最大的原因是,当初宣布 Android Studio 成为官方 IDE 后,很多开发者都还在坚守 Eclipse,但是现在来看,大部分都转为 Android Studio 开发了。所以,开发者肯定担心,Kotlin 会不会也最后完美取代 Java 呢? 我是在官网看了下资料,简单入门的。 我确实感受到了 Kotlin 与 Java 的不同,但我不觉得 Java 已经老态龙钟了...阅读全文

博文 2017-05-28 11:00:31 briblue

Kotlin学习笔记(8)- 扩展

系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正。Kotlin学习笔记(1)- 环境配置Kotlin学习笔记(2)- 空安全Kotlin学习笔记(3)- 语法Kotlin学习笔记(4)- 流程控制Kotlin学习笔记(5)- 类Kotlin学习笔记(6)- 属性Kotlin学习笔记(7)- 接口Kotlin学习笔记(8)- 扩展 今天要开始学习扩展(Extension)了,扩展是kotlin中非常重要的一个特性,它能让我们对一些已有的类进行功能增加、简化,使他们更好的应对我们的需求。这么说可能有点枯燥,我们先来看一个小栗子。 // 对Context的扩展,增加了toast方法。为了更好的看到效果,我还加了一段log日志 fun Context.toast(msg : Stri...阅读全文

博文 2017-06-03 18:02:18 我爱吃栗子啊

我所理解的Dagger2

一、简述 Dagger2是一个Android目前较为主流的依赖注入框架,最早的版本Dagger1 由Square公司开发,现在Dagger2由谷歌接手开发,主要用于模块间解耦,提高代码的健壮性和可维护性。之前也断断续续看过好多文章,今天正式学习一下。并且额外介绍下如何在Kotlin中使用Dagger2,写的不好,还请见谅! 二、注解方法 @Inject: 通常在需要依赖的地方使用这个注解。换句话说,你用它告诉Dagger这个类或者字段需要依赖注入。这样,Dagger就会构造一个这个类的实例并满足他们的依赖。 @Module: Modules类里面的方法专门提供依赖,所以我们定义一个类,用 @Module注解,这样Dagger在构造类的实例的时候,就知道从哪里去找到...阅读全文

博文 2017-06-08 15:02:16 码农Mrz

#Android开发之kotlin实现(体验)

Android开发之kotlin实现(体验) 虽然工作很久了但是第一次写博客,每次动手去写东西感觉自己要表述的东西网上一搜有好多(可能几篇东西凑到以前满足自己的需要),最近从Google大会了解到kotlin语言也感觉它的发展很有市场,看了官方的文档自己感觉可以试试这门语言,所以自己写了一个小的demo试试它,其中包含可Android中的基本用法,闲话不说直接开整: - 环境的搭建 3.0以下的Android Studio版本(3.0自带kotlin插件) 目前只探索了Android Studio上使用,其实Android Studio也是基于kotlin语言开发团队开发的IDE上完善的软件开发工具 1.需要安装kotlin语言的插件File——>settings——>plugins——>搜...阅读全文

博文 2017-06-09 21:00:32 qq_33494480

Kotlin学习记录(三)—— 子线程获取数据,实现简单ListView

接上篇:Kotlin的变量、属性、类、构造函数、继承、方法 上一篇简单介绍了Kotlin的一些基础构成,当然还有像对象声明、操作符等等都未涉及到,这些会在以后用到的过程中进行详细说明。 项目中ListView列表出现的频率是很高的,我们就以实现一个简单ListView为目标,介绍一下在子线程中获取数据等问题。 首先在layout中新增个listview: 在activity中绑定View,之前说了,可以通过 "import kotlinx.andro...阅读全文

博文 2017-06-10 07:00:31 u011732740

kotlin-extension function

前言 kotlin 的函数扩展可以给已知的任何 class 类添加函数,而不需要在写各种 utils 工具类,极大的解放了码农的天性三大高阶用法: type-safe builder 模式,扩展方法与扩展属性, lambda with receiver 一、 扩展函数 使用 fun 来生成一个可以构建任何 Android View 的实例 inline fun v(context: Context, init: TV.() -> Unit): TV{ val constr = TV::class.java.getConstructor(Context::class.java) val view = constr.newInstance(context)...阅读全文

博文 2017-05-27 15:20:44 关内侯和他的五百勇士

Kotlin学习笔记(基础记录)

未完待续······太监直播吃电脑(●'◡'●) 一.基础操作符、语法、定义等 val --> 常量 ; var --> 变量 : 继承、实现 :: 引用 fun isOdd(x: Int) = x % 2 != 0 println(numbers.filter(::isOdd)) // 输出 [1, 3] =、==、=== 分别表示 赋值、比值、比引用 is 、!is --> instanceof $ (取值符) .. 表示区间 1..5 --> 1至5 ?相关: val num : Int? = number //标识num允许为null,但是会将num自动装箱 num?: println("num is null") //?: 在num为null时 num?.let { println...阅读全文

博文 2017-06-06 22:02:18 blink_dagger

带有吸附效果的RecyclerView装饰器

通过本文你讲了解到:1.RecyclerView.ItemDecoration的一般写法2.View的DrawingCache的相关内容3.Kotlin的简单语法4.这个一个支持任意分组的,任意布局的Item装饰。外加可以顶部吸附效果(当然你不喜欢,也可以不启用) 灵感来源:(http://www.jianshu.com/p/b335b620af39 )先偷一张图,想要的效果就是这样的。 理想 然后是我写的代码的效果: 我的效果.gif 1.先说说ItemDecoration ItemDecoration主要一下三个方法,可以给Item添加装饰,这就是装饰器的意思,一般用来做分割线。 public void onDraw(Canvas c, RecyclerView parent, Stat...阅读全文

博文 2017-06-15 17:02:15 Greenda米

在kotlin-MVP使用dagger2-v2.11+

这个一个简单的例子;介绍如何在Kotlin-MVP中使用dagger2(v2.11+),基本使用就不介绍了,还是跟之前版本还是一样,只是设计到activity/Fragment的时候有点不一样dagger2官方介绍与android使用的文档在这里 1. 创建mvp模板 beandata class UserInfo(var name: String, var age: Int) model class MainModel { interface CallBack { fun data(info: UserInfo) } fun getInfo(callBack: CallBack) { callBack.data(UserInfo("Kotlin", 3)) } } presenter cl...阅读全文

博文 2017-06-16 17:02:32 JokAr_

Kotlin编程开发Android运用程序(Volley+Gson依赖库)

在2017年Google IO大会中,宣布Kotlin 作为官方语言。跟着党走总没错的想法,开始满怀激情的开始Kotlin之旅。 历经一个下午的探索Kotlin编程后。昨晚按耐不住激动心情,边摸石头边过河的方式,花了一个晚上时间,撸了本项目代码。过完一段时间的后,Kotlin理解提高了,再回头看下本项目,肯定是左右嫌弃的,但是这毕竟是本人的第一个Kotlin项目。 1. AndroidStudio支持Kotlin的配置: 若是使用的AndroidStudio3.0以下,是默认不支持Kotlin语言的,需要自行配置。 Androistudio 3.0以上是自带支持Kotlin。 具体配置与使用,可以参考上篇讲解的文章, Kotlin编程之AndroidStudio(包括3.0与2.x版本)配置...阅读全文

博文 2017-05-22 18:02:26 hexingen

Handling Lifecycles

谷歌IO大会刚过去不久,作为开发者,最重要关注的肯定是关于安卓开发有什么新的知识和动向,这不 一夜间安卓平台的主流语言换成Kotlin了,这几天抽了点时间学习了一下,其实还不错,就语言本身来讲确实比java要方便且安全不少,好在也是JVM平台的,所以学起来也是非常快,并没太多的坎,而且还是和Java混合开发,怎么方便怎么来。这里不得不由衷的感叹一句,还是Java大法好啊!~~~~~~好像有些偏题了,除了Kotlin,还有一些新的东西,也就是本文以及接下来两篇文章要介绍的库,Lifecycle,LiveData以及ViewModel.不过当前版本还是测试版,但这并不妨碍我们的学习。首先来看看Handling Lifecycles.另外本文基本上主要是对着官方的文档翻译了一遍,感兴趣的同学可以直...阅读全文

博文 2017-06-06 18:02:07 Ggx的代码之旅

Android鬼点子-使用Kotlin编写的颜色选择器

截图     正式入坑Kotlin,今后的自定义View不出意外都将会使用Kotlin实现,这次的demo放到了Github上哟,链接看文末。     这个颜色选择器分为3个部分,最外层白-中间选中色-黑,中层 红绿蓝渐变,中心显示选中颜色。     中间的红绿蓝渐变使用的6钟颜色渐变完成: mSweepGradient = SweepGradient((width / 2).toFloat(), (width / 2).toFloat(), intArrayOf(0xffff0000.toInt(), 0xffffff00.toInt(), 0xff00ff00.toInt(), 0xff00ffff.toInt(), 0xff0000ff.toInt(), 0xffff00ff.toIn...阅读全文

博文 2017-06-08 15:02:16 Greenda米

在Android上运用Anko和Kotlin开发数据库:SQLite从来不是一件轻松的事(KAD25)

作者:Antonio Leiva 时间:Mar 30, 2017 原文链接:https://antonioleiva.com/databases-anko-kotlin/ 事实告诉我们:在Android中编写数据库是相当无聊的。 使用SQLite时,所需的所有模板在当今世界上都不是一件最令人愉快的事情。 所幸的是,在最新一次Google I / O会议上,它们宣布的其中一项事项(称其为:Room),就是为简化这项工作,开发出足够的库。 然而,运用Anko,我们仍可以继续像使用低级别框架一样工作,但是摆脱了实施过程中一些繁琐的部分。今天我们来看看究竟是怎么样做到的。 运用Anko创建你的数据库 这里你将看到如何从头开始创建数据库。在Android上,你需要SQLiteOpenHelper,来检...阅读全文

博文 2017-06-10 08:00:01 figozhg

自定义ExcelView(一)

结完婚,来到成都。原计划找到工作稳定之后,保证一星期至少两篇分享。然而,新公司项目周期很赶,已经上班一周,每天都在赶工程,每周基本单休,再加上生活琐事,无暇顾他。所以今天忙中偷闲,不写代码了,码码字。 遇到的问题 今年 Google 的 I/O 大会,将 Kotlin 指定为未来 Android 开发的第一语言。会后引发了 Kotlin 的学习热潮。所以,讲重点,今天的文章和 Kotlin 无关,是项目中遇到的一个问题…… Excel 表格,想必大家都有用过。 行和列,最左边有行数,最上面有列数,类似于数学中画 X、Y 轴时坐标轴上的标注,代表了一个单元格在横竖坐标上对应的值。 单元格中能填充内容,单元格的边框和背景的颜色和类型都可以修饰。 高级点的功能,单元格之间可以做函数运算,也可以合并...阅读全文

博文 2017-06-11 22:02:10 AutismBug

RecyclerView之简单使用

1,添加依赖 在Project的build.gradle中添加 buildscript { ext.kotlin_version = '1.1.2-4' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } 在app->build.gradle最上面添加 apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' 在app->build...阅读全文

博文 2017-06-17 16:02:18 小和尚恋红尘

Kotlin VS Java:基本语法差异

Kotlin比Java更年轻,但它是一个非常有前途的编程语言,它的社区不断增长。 每个人都在谈论它,并说它很酷。 但为什么这么特别? 我们准备了一系列文章,分享我们在Kotlin开发Android应用程序的经验。 我们将讨论Kotlin与Java在语法,可用性,UI性能和异步性方面的区别,以便您可以决定哪种语言最适合您。 让我们从一些基本的语法差异开始。 这是第一个: 1. 使用Kotlin,你可以用更少的代码做更多 Kotlin的一个主要优点是它的简洁。 你用更少的代码获得更多的功能。 而你写的代码越少,你犯的错误就越少。 这很简单。 让我们看看Kotlin的基础知识,从类开始。 public final class Person { private String name; privat...阅读全文

博文 2017-05-22 19:52:55 sergeycao

Spring Boot+Kotlin

当遇到kotlin后,可能再也不想写Java代码了。kotlin 相对scala来说更简单。 要用到的开发工具有: JDK 1.7/1.8 Gradle 2.14.1 Intellj IDEA 2016.2.5 先来创建一个打印用户名列表的程序练练手。 打开IDEA, 选择Gradle, 再选择kotlin, 然后按照提示完成工程的创建。 创建完毕后,默认是没有源代码目录,需要在根目录下创建src/main/kotlin,src/main/resources, 以及单元测试需要的src/test/kotlin, src/test/resources目录。 修改build.gradle, group 'com.foo' version '0.1' buildscript { ext.kotli...阅读全文

博文 2017-05-23 11:43:37 FeiFeiZheng

Android-10 Kotlin封装Sqlite

很高兴,这个系列的文章终于上了两位数,给自己点个赞;不过上篇文章给自己挖了个坑,说是这次介绍anko中的sqlite,本来就是春节前的最后一周,完全无心看书啊,终于,终于,在参考了各种代码之后,算是做了一次初步的封装; 正如自己blog的描述,我们不生产代码,只是代码的搬运工,这次也一样,大部分的封装的代码参考自《Kotlin for Android Developers》,其中代码见传送门,只不过,我稍微简化修改了下,更适合自己的开发习惯,下面我们还是来看具体的代码: step1 引入anko sqlite的库,这里我使用的版本是0.8.2,最新的是0.9.0,不过这次的封装不适用于最新版本,如果使用最新版本,请自行调整下: 添加以下代码到你的build.gradle文件中: compil...阅读全文

博文 2017-05-27 15:23:21 vslimit

Android BLE Kotlin 笔记

BLE 与经典蓝牙的区别 BLE 的 Kotlin 下实践 经典蓝牙(Classic Bluetooth)& 低功耗蓝牙(Bluetooth Low Energy) 经典蓝牙可以用与数据量比较大的传输,如语音,音乐,较高数据量传输等。 BLE 特点就如其名,功耗更低的同时,对数据包做出了限制。所以适用于实时性要求比较高,但是数据速率比较低的产品,如鼠标,键盘,传感设备的数据发送等。 蓝牙 4.0 支持单模和双模两种部署方式,其中单模即是我们说的 BLE,而双模指的是 Classic Bluetooth + BLE 。实际上,BLE 和经典蓝牙的使用等各方面都像是没有关联的两个东西,甚至因为 BLE 的通讯机制不同,所以是不能向下兼容的;经典蓝牙则可以兼容到蓝牙 3.0 / 2.1。 经典蓝牙...阅读全文

博文 2017-05-27 15:25:27 SoftXJ

Kotlin Android Extensions

在一篇的Kotlin for Android的环境搭建中,已经简单介绍了怎么在AS中配置Kotlin的开发环境,其实很简单的。今天我们来一起学习,Kotlin团队开发的一个插件Kotlin Android Extensions,这插件可以让我们用更少的代码来开发程序,目前仅仅包括了view的绑定,该插件自动创建了很多的属性来让我们直接访问XML中的view,省去了开发者findViewById。我们在使用Java时,findViewById是比较麻烦的,通过控件的ID来查找控件,当然也有第三方框架ButterKnife,Dagger等来减少findViewById的使用,通过插件自动生成,但在使用Kotlin时,便不必如此。 我们可以看一下通过用Kotlin扩展函数的原理和好处,该插件会代替...阅读全文

博文 2017-06-08 18:02:11 西红柿的眼泪

Kotlin实战(二): 实现RecyclerView多种Item布局

前言 RecyclerView出来很久了,可以说一出来就将ListView给比下去了,当然,Recyclerview有它的好,ListView的好,并不是说一定要用Recyclerview,最适用自己项目的才是最好的。 在这里我们将用Kotlin来实现RecyclerView的多种item布局,和单个item布局,同时写一个通用的Adapter。 使用 先将写完的代码的使用方式展示一下: 一种item布局 class SingleItemAdapter(mContext: Context, mDatas: List) : DelegateItemAdapter(mContext, mDatas) { init { addItemViewDelegate...阅读全文

博文 2017-06-09 19:02:16 叫我旺仔

一周入门Kotlin(三)

本章有2点主要内容,一个是关于属性的委托,二是关于对象接口和委托的问题探讨。 属性委托 1.现有代码的问题 例子1:下面的代码中,我创建了一个学生对象,并且希望不要一开始就为学生的姓名年龄和身高赋值,为了达到目的,我选择了将所有的属性置为null: class Student { var name: String? = null var age: Int? = null var height: Double? = null fun test() { Log.i("IT520", "SIMPLE TEST METHOD !") } } 于是,我在Activity中的onCreate()初始化了Student对象,并给他赋值了,代码如下: class MainActivity : AppComp...阅读全文

博文 2017-06-09 20:00:31 qq285016127

让你的代码量减少3倍!使用kotlin开发Android(三) 缩短五倍的Java Bean

回顾一下 哈,没想到你已经坚持不懈看到第三篇了,不错哈~坚持就是胜利。 本文同步自博主的私人博客wing的地方酒馆 在上一篇文章中,我们介绍了扩展函数,这里对上一篇进行一点小小的补充。 还记得textview是如何setText()的吗 textView.text = "hello kotlin" 不知道你有没有想过,这个.text是如何实现的呢。 哈哈,其实你们大概已经猜到了。就是通过扩展函数实现的 public var TextView.text: CharSequence get() = getText() set(v) = setText(v) 开始今天的内容 今天介绍的是一种叫做数据类的类,他没有什么功能,只负责储存数据,也就是我们常说的Java Bean,通常,在Java语言里,...阅读全文

博文 2017-05-22 18:40:25 wingichoy

Android-5 Kotlin实现Loading

之前文章是使用Toast来替代网络请求时加载的Loading,本文就自定义实现一个简单的Loading,当然了,第三方开源库里有很多漂亮的加载库,我这只能算是抛砖引玉: Loading的实现: Loading 1.0 网上流传的Loading,大都使用的Tween的RotateAnimation,以前的项目中我也是参照网上Demo实现的,这里贴出LoadingDialog动画实现代码: LoadingDialog: private void initAnim() { mAnim = new RotateAnimation(0, 360, Animation.RESTART, 0.5f, Animation.RESTART, 0.5f); mAnim.setDuration(2000); mA...阅读全文

博文 2017-05-27 15:23:53 vslimit

使用Kotlin让Android APIs变得更有趣

最喜欢Kotlin中的功能之一就是扩展功能,它允许你扩展类中的功能而不用继承它们。 设置View的高度 在Android中动态的给View设置高度是很烦人的,使用Kotlin扩展,让你变得更轻松: fun View.setHeight(height:Int){ val params = layoutParams params.height = height layoutParams = params } 如果你想设置height到你的view实例中,你只需要调用view.setHeight(newHeight),超级简单! 设置View可见性 设置view为visible或者gone需要通过view.Visibility = View.VISIBLE or view.visibility =...阅读全文

博文 2017-06-05 17:02:43 尺锤