Kotlin入门】的更多相关文章

测试项目Github地址: KotlinForJava 前文传送: Kotlin入门第一课:从对比Java开始 初次尝试用Kotlin实现Android项目 1. 介绍 作为Kotlin入门的第二课,不打算按照教程从基础数据类型开始,而是直接学习至关重要的集合部分.因为一般的应用开发都离不开数据,数据处理就要用到集合,而只有深入了解集合,包括概念及不同类型的集合分别实现了哪些方法,才能在需要的时候快速选出最合适的集合与对应的操作.因此,迫不及待地想给大家展示Kotlin集合的魅力,基础数据类型的…
手机上的资源毕竟有限,为了获取更丰富的信息,就得到辽阔的互联网大海上冲浪.对于App自身,也要经常与服务器交互,以便获取最新的数据显示到界面上.这个客户端与服务端之间的信息交互,基本使用HTTP协议进行通信,即App访问服务器的HTTP接口来传输数据.HTTP接口调用在Java代码中可不是一个轻松的活,开发者若用最基础的HttpURLConnection来编码的话,至少要考虑以下场景的处理:1.HTTP的请求方式是什么,是GET还是POST还是PUT还是DELETE?2.HTTP的连接超时时间是…
写给Android开发者的Kotlin入门 转 https://www.jianshu.com/p/bb53cba6c8f4 Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Google玩儿Android的人,我们必须尽快了解和使用Kotlin语言. 不过Kotlin毕竟是语言级别的新事物,比起Java来说,从编程思想到代码细节都有不少变化,我们最好先对Kotlin有个整体的基本的了解,然后再去学习和使用,这样才能高效地掌握Kotlin语言. Jav…
Application是Android的又一大组件,在App运行过程中,有且仅有一个Application对象贯穿应用的整个生命周期,所以适合在Application中保存应用运行时的全局变量.而开展该工作的基础,是必须获得Application对象的唯一实例,也就是将Application单例化.获取一个类的单例对象,需要运用程序设计中常见的单例模式,倘若通过Java编码实现单例化,想必早已是大家耳熟能详的了.下面便是个Application单例化的Java代码例子: public class…
Kotlin是谷歌官方认可的Android开发语言,Android Studio从3.0版本开始就内置了Kotlin,所以未来在App开发中Kotlin取代Java是大势所趋,就像当初Android Studio取代Eclipse成为App开发工具一样. 下面分章节列出各篇Kotlin教程的索引地址,方便大家查阅. Kotlin入门教程目录第一章 环境搭建Kotlin入门(1)搭建Kotlin开发环境Kotlin入门(2)让App开发变得更容易第二章 类型声明Kotlin入门(3)基本变量类型的…
上一篇文章介绍了数组的声明和操作,包括字符串数组的用法.注意到Kotlin的字符串类也叫String,那么String在Java和Kotlin中的用法有哪些差异呢?这便是本文所要阐述的内容了. 首先要说明的是String类型与基本变量类型之间的转换方式,在<Kotlin入门(3)基本变量类型的用法>中,提到基本变量类型可以通过toString方法转为字符串类型.反过来,字符串类型又该如何转为基本变量类型?如果使用Java编码,有以下几种转换方式:字符串转整型:调用方法Integer.parse…
上一篇文章介绍了Kotlin新增的空安全机制,控制语句部分可算是讲完了,接下来将连续描述Kotlin如何定义和调用函数,本篇文章先介绍函数的基本用法. 前面几篇文章介绍控制语句之时,在setOnClickListener里面写了大段的代码,这不但导致onCreate方法变得很臃肿,而且代码的可读性也变差了.对于这种情况,通常的解决办法是把某段代码挪到一个独立的函数中,然后在原位置调用该函数,这样做的好处很多,不仅增强了代码的可读性,还能多次重复调用函数.那么Kotlin对函数的使用跟Java相比…
上一篇文章介绍了Kotlin对函数的输入参数所做的增强之处,其实函数这块Kotlin还有好些重大改进,集中体现在几类特殊函数,比如泛型函数.内联函数.扩展函数.尾递归函数.高阶函数等等,因此本篇文章就对这几种特殊函数进行详细的说明. 泛型函数函数的输入参数类型必须在定义函数时就要指定,可是有时候参数类型是不确定的,只有在函数调用时方能知晓具体类型,如此一来要怎样声明函数呢?其实在之前的文章<Kotlin入门(4)声明与操作数组>里面,就遇到了类似的情况,当时为了采取统一的格式声明基本类型的数组…
上一篇文章介绍了类的简单定义及其构造方式,当时为了方便观察演示结果,在示例代码的构造函数中直接调用toast提示方法,但实际开发是不能这么干的.合理的做法是外部访问类的成员属性或者成员方法,从而获得处理之后的返回值,然后外部再根据返回信息判断对应的处理方式.有鉴于此,本篇文章就来谈谈Kotlin如何声明成员属性和成员方法,以及外部如何访问类成员. 接上篇文章动物类的例子,每只动物都有名称和性别两个属性,所以必然要输入这两个参数,对应的类代码如下所示: class WildAnimal (name…
上一篇文章介绍了类对成员的声明方式与使用过程,从而初步了解了类的成员及其运用.不过早在<Kotlin入门(12)类的概貌与构造>中,提到MainActivity继承自AppCompatActivity,而Kotlin对于类继承的写法是“class MainActivity : AppCompatActivity() {}”,这跟Java对比有明显差异,那么Kotlin究竟是如何定义基类并由基类派生出子类呢?为廓清这些迷雾,本篇文章就对类继承的相关用法进行深入探讨. 博文<Kotlin入门…
上一篇文章介绍了Kotlin的几种开放性修饰符,以及如何从基类派生出子类,其中提到了被abstract修饰的抽象类.除了与Java共有的抽象类,Kotlin还新增了好几种特殊类,这些特殊类分别适应不同的使用场景,极大地方便了开发者的编码工作,下面就来看看Kotlin究竟提供了哪些独门秘笈. 嵌套类一个类可以在单独的代码文件中定义,也可以在另一个类内部定义,后一种情况叫做嵌套类,意即A类嵌套在B类之中.乍看过去,这个嵌套类的定义似乎与Java的嵌套类是一样的,但其实有所差别.Java的嵌套类允许访…
Kotlin 入门教程 Android / Java https://developer.android.com/kotlin?hl=zh-cn 使用 Kotlin 开发 Android 应用 使用 Kotlin 更快地编写更出色的 Android 应用. Kotlin 是一种新型的静态类型编程语言,有超过 60% 的专业 Android 开发者在使用,它有助于提高工作效率.开发者满意度和代码安全性. https://kotlinlang.org/foundation/kotlin-founda…
1. 介绍 今年初,甲骨文再次对谷歌所谓的安卓侵权使用Java提起诉讼,要求后者赔偿高达90亿美元.随后便传出谷歌因此计划将主力语言切换到苹果主导的Swift,不过这事后来没了跟进. 但谷歌在这两天的I/O大会上宣布了新决定:Kotlin语言正式成为安卓开发的一级编程语言.资料显示,Kotlin由JetBrains公司开发,于2010年首次推出,次年开源.它与Java 100%互通,并具备诸多Java尚不支持的新特性,下一版的Android Studio(3.0)将提供支持. 去年底的时候接触到…
前言 本文适合人群 有一定的java基础 变量与方法 变量声明及赋值 var 变量名: 变量类型 val 变量名: 变量类型 这里,var表示可以改变的变量,val则是不可改变的变量(第一个赋值之后,之后都无法改变此变量的数值) PS:在kotlin中,类型首字母都是要大写的,还有,冒号之后有空格 变量声明及赋值 var name ="" var age= 1 val name= "" ... 赋值的话,直接赋值就好,系统会自动的给变量定义类型 变量声明特殊例子 n…
进行App开发的时候,使用震动器要在AndroidManifest.xml中加上如下权限: <!-- 震动 --> <uses-permission android:name="android.permission.VIBRATE" /> 让手机震动的功能用到了震动器Vibrator类,而震动器对象从系统服务VIBRATOR_SERVICE获得,实现该功能的代码很简单,即便用Java书写也只有以下两行代码: Vibrator vibrator = (Vibrat…
json是App进行网络通信最常见的数据交互格式,Android也自带了json格式的处理工具包org.json,该工具包主要提供了JSONObject(json对象)与JSONArray(json数组)的解析处理.下面分别介绍这两个工具类的用法:1.JSONObjectJSONObject的常用方法如下所示:构造函数 : 从指定字符串构造出一个JSONObject对象.getJSONObject : 获取指定名称的JSONObject对象.getString : 获取指定名称的字符串.getI…
Android开发时常会遇到一些耗时的业务场景,比如后台批量处理数据.访问后端服务器接口等等,此时为了保证界面交互的及时响应,必须通过线程单独运行这些耗时任务.简单的线程可使用Thread类来启动,无论Java还是Kotlin都一样,该方式首先要声明一个自定义线程类,对应的Java代码如下所示: private class PlayThread extends Thread { @Override public void run() { //此处省略具体的线程内部代码 } } 自定义线程的Kot…
任务Runnable定义了一个可以独立运行的代码片段,通常用于界面控件的延迟处理,比如有时为了避免同时占用某种资源造成冲突,有时则是为了反复间隔刷新界面从而产生动画效果.运行一个任务也有多种形式,既可在UI线程中调用处理器对象的post或者postDelayed方法,也能另外开启分线程来执行Runnable对象.那么在运行任务之前,必须事先声明该任务的对象,然后才能由调用者执行该任务.Kotlin代码声明Runnable对象有四种方式,分别对应不同的业务场景,接下来就依次阐述Runnable对象…
Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通过输入输出流中转,致使文件读写操作颇为繁琐.因此,开发者通常得自己重新封装一个文件存取的工具类,以便在日常开发中调用.下面是一个文件工具类的简单Java代码: public class FileUtil { //保存文本文件 public static void saveText(String path, String txt) { try { FileOutputStream fos = new File…
共享参数毕竟只能存储简单的键值对数据,如果需要存取更复杂的关系型数据,就要用到数据库SQLite了.尽管SQLite只是手机上的轻量级数据库,但它麻雀虽小.五脏俱全,与Oracle一样存在数据库的创建.变更.删除.连接等DDL操作,以及数据表的增删改查等DML操作,因此开发者对SQLite的使用编码一点都不能含糊.当然,Android为了方便开发者的工作,已经提供了一个操作SQLite的工具类即SQLiteOpenHelper,在App开发时可由SQLiteOpenHelper派生出具体的业务表…
共享参数SharedPreferences是Android最简单的数据存储方式,常用于存取“Key-Value”键值对数据.在使用共享参数之前,要先调用getSharedPreferences方法声明文件名与操作模式,示例代码如下: SharedPreferences sps = getSharedPreferences("share", Context.MODE_PRIVATE); 该方法的第一个参数是文件名,例子中的share表示当前的共享参数文件是share.xml:第二个参数是…
Android提供了丰富多彩的视图与控件,已经能够满足大部分的业务需求,然而计划赶不上变化,总是有意料之外的情况需要特殊处理.比如PagerTabStrip无法在布局文件中指定文本大小和文本颜色,只能在代码中通过setTextSize和setTextColor方法来设置.这用起来殊为不便,如果它能像TextView那样直接在布局指定文本大小和颜色就好了:要想让PagerTabStrip支持该特性,就得通过自定义视图来实现,而自定义视图的第一种途径便是自定义属性.仍旧以翻页标题栏PagerTabS…
前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象.随着用户的下拉或者上拉手势,已经被回收的列表项要重新加载到界面上,倘若每次加载都得从头创建视图对象,势必增加了系统的资源开销.所以ViewHolder便应运而生,它在列表项首次初始化时,就将其视图对象保存起来,后面再次加载该视图时,即可直接从持有者处获得先前的视图对象,从而减少了系统开销,提高了系统的运…
列表视图 为实现各种排列组合类的视图(包括但不限于Spinner.ListView.GridView等等),Android提供了五花八门的适配器用于组装某个规格的数据,常见的适配器有:数组适配器ArrayAdapter.简单适配器SimpleAdapter.基本适配器BaseAdapter.翻页适配器PagerAdapter.适配器的种类虽多,却个个都不好用,以数组适配器为例,它与Spinner配合实现下拉框效果,其实现代码纷复繁杂,一直为人所诟病.故而在下拉框一小节之中,干脆把ArrayAda…
Activity的活动页面跳转是App最常用的功能之一,在前几章的demo源码中便多次见到了,常常是点击界面上的某个按钮,然后跳转到与之对应的下一个页面.对于App开发者来说,该功能的实现非常普通,使用Java编码不过以下两行代码而已: Intent intent = new Intent(MainActivity.this, LinearLayoutActivity.class); startActivity(intent); 上面代码的关键之处在于Intent的构造函数,其中第一个参数指定了…
提醒对话框手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续吭哧吭哧兀自办完业务,比如转错钱了.误删资料了,往往令用户追悔莫及.所以对于部分关键业务,App为了避免用户的误操作,很有必要弹出消息对话框,提醒用户是否真的要进行此项操作.这个提醒对话框便是App开发常见的AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎…
线性布局线性布局LinearLayout是最常用的布局,顾名思义,它下面的子视图像是用一根线串了起来,所以其内部视图的排列是有顺序的,要么从上到下垂直排列,要么从左到右水平排列.排列顺序只能指定一维方向的视图次序,可是手机屏幕是个二维的平面,这意味着还剩另一维方向需要指定视图的对齐方式.故而线性布局主要有以下两种属性设置方法:1. setOrientation: 设置内部视图的排列方向.LinearLayout.HORIZONTAL表示水平布局,LinearLayout.VERTICAL表示垂直…
Kotlin做为一门编程语言,已经出现好几年了,但此前在国内并不闻名.自从5月份谷歌宣布它成为Android的官方开发语言之后,Kotlin猛然窜红了,虽说短期内Kotlin无法取代Java,但对于一门新技术,我们还是有必要好好学习. 谷歌号称从Android Studio 3.0开始完全支持Kotlin,可是Android Studio目前的稳定版还是2.3,所以本文仍然以Android Studio 2.3为基础,讲述如何基于Android Studio搭建Kotlin的开发环境. 首先要下…
上一篇文章介绍了如何搭建Kotlin的开发环境,可是这个开发环境依然基于Android Studio,而在Android Studio上使用Java进行编码,本来就是理所应当的,何必还要专门弄个Kotlin,这个Kotlin相比Java到底有哪些好处呢? 我们可以把Kotlin看作是Java的升级版,它不但完全兼容Java,而且极大精简了代码语法,从而使开发者专注于业务逻辑的编码,无需在繁琐的代码框架之间周旋.当然,若想充分运用Kotlin的优异特性,除了导入Kotlin的核心库,还得导入Kot…
上一篇文章介绍了Kotlin在App开发中的简单用法,包括操纵控件对象.设置控件监听器,以及弹出Toast提示等等.也许大家已经迫不及待想要了解更深入的App开发,可是由于Kotlin是一门全新的语言,与Java相比有自己的一套语法和关键字,正所谓皮之不存.毛将焉附,因此接下来还是得系统地学习Kotlin的语法知识,为后续使用Kotlin开发App打下扎实的基础,有道是磨刀不误砍柴工. Kotlin的基本数据类型跟其他高级语言的分类一样,也包括了整型.长整型.浮点数.双精度.布尔型.字符型这几种…