Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者。Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发者使用而不断进化时,Java并没有像预期那样及时跟进。
Kotlin是由JetBrains创建的基于JVM的编程语言,IntelliJ正是JetBrains的杰作,而Android Studio是基于IntelliJ修改而来的。Kotlin是一门包含很多函数式编程思想的面向对象编程语言。
Kotlin生来就是为了弥补Java缺失的现代语言的特性,并极大的简化了代码,使得开发者可以编写尽量少的样板代码。

据说是Android下的swift语言,而且是有jetBrains出品,有这么强大的IDE支持,一定错不了。
AndroidStudio安装Kotlin开发插件:
点击“Install JetBrains plugin”
输入kotlin搜索,安装下面那个Kotlin Extension For Android插件,安装后重启AS。
创建KotlinActivity:
新建Android工程,这一步和以前创建安卓工程的步骤类似,这个时候工程里面也没有跟kotlin有半毛钱的关系。
只不过在工程创建完成后,再新建Activity的时候选择KotlinActivity:
不带分号结束的看起来就是舒服,习惯了Lua和Python。
自动创建的界面布局文件和之前的没什么区别,依然是xml格式的。同时manifest里也会自动添加该Activity的声明。
配置gradle:
如果IDE提示需要配置Kotlin的时候,就点击配置就好了,会自动在project和module的build.gradle里配置好。如果是手动配置的话,请在project的build.gradle里配置:
buildscript { ext.kotlin_version = '1.0.2'repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.1.0'classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"// NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files}}
在module的build.gradle里配置:
apply plugin: 'com.android.application'apply plugin: 'kotlin-android'android {    compileSdkVersion 23buildToolsVersion "23.0.2"defaultConfig {        applicationId "com.example.demo_yunbu"minSdkVersion 15targetSdkVersion 23versionCode 1versionName "1.0"}    buildTypes {        release {            minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}    }    sourceSets {        main.java.srcDirs += 'src/main/kotlin'}}

dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:appcompat-v7:23.1.1'compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"}repositories {    mavenCentral()}

最后IDE提示Sync Now,用用这些修改就好了。
最后我们在布局文件中添加一个TextView来演示控件的操作:
<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/tvMessage"/>

然后在Activity代码里就可以直接使用变量tvMessage了,如果有如下提示:

只需要按Alt+Enter导入布局文件的引用即可,自动导入:
import kotlinx.android.synthetic.main.activity_main.*

然后可以直接使用变量tvMessage进行操作了,非常方便,再也不用每个控件用findViewById查找一遍了。

以下是完整的代码:
package com.example.hellokotlin

import android.content.Intentimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)tvMessage.text = "hello kotlin!";btnOpenActivity2.text = "OpenActivity2"btnOpenActivity2.setOnClickListener({ startActivity(Intent(MainActivity@this, SecondActivity::class.java)) })    }}

把之前的java代码转换为Kotlin:
前面新建android工程的时候因为MainActivity并不是KotlinActivity,因此需要转换一下,
选择菜单Code->Convert Java File to Kotlin File

除了文件内容改变之外,文件的扩展名也从.java变为了.kt。
编译,出现错误:
Error:(6, 8) Unresolved reference: kotlinx
Error:(13, 9) Unresolved reference: tvMessage
Error:Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details

提示缺少kotlin,需要手动配置一下,在module的build.gradle里添加:
buildscript {    repositories {        jcenter()    }    dependencies {        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"}}

修改完成后Sync Now一次,编译通过,运行效果:
点击按钮后打开一个空白的页面,这里就不截图了。
使用anko创建界面:
前面的界面全部继续使用了XML来创建的,这里演示下使用anko创建界面。
首先配置gradle,在project的gradle里buildscript添加:
ext.anko_version = '0.8.2'

再在module的gradle里dependencies添加:

// Ankocompile "org.jetbrains.anko:anko-common:$anko_version"compile 'org.jetbrains.anko:anko-sdk15:0.8.2' // sdk19, sdk21, sdk23 are also availablecompile 'org.jetbrains.anko:anko-support-v4:0.8.2' // In case you need support-v4 bindingscompile 'org.jetbrains.anko:anko-appcompat-v7:0.8.2' // For appcompat-v7 bindings

最后Sync Now,成功后编辑SecondActivity的代码:

package com.example.hellokotlin

import android.support.v7.app.AppCompatActivityimport android.os.Bundleimport org.jetbrains.anko.*

class SecondActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)//        setContentView(R.layout.activity_second)verticalLayout {padding = dip(30)editText {hint = "Name"textSize = 24f}editText {hint = "Password"textSize = 24f}button("Login") {textSize = 26fonClick { toast(button@this.text) }            }        }}}

这里注释掉了原来由setContentView来设置的xml布局,而使用了代码直接创建,使用起来简单直接了,但是缺点也很明显,不能做到界面设计阶段的实时预览效果,很难做到所见即所得,好在xml还能继续支持。

运行看下效果,点击主界面的按钮打开第二个页面:
点击Login按钮弹出一个土司,文本就是该按钮的文本。
参考:
《Kotlin for android developers》中文版翻译 
Getting started with Android and Kotlin
Unresolved reference: kotlinx
Android开发必备知识:为什么说Kotlin值得一试
Kotlin在Android工程中的应用
使用 Kotlin 和 Anko 的安卓开发入门
anko
使用Kotlin开发Android应用

转载于:https://www.cnblogs.com/simadi/p/6698850.html

使用Kotlin进行Android开发相关推荐

  1. Kotlin on Android 开发环境介绍

    Kotlin 被 Google 采纳为 Android 开发一级编程语言,到现在也一年多了,我们团队从去年 10 月份开始部分项目尝试用 Kotlin 开发,到现在决定推广到全部项目,因为一旦用上 K ...

  2. 第14章 使用Kotlin 进行 Android 开发

    2019独角兽企业重金招聘Python工程师标准>>> 第14章 使用Kotlin 进行 Android 开发 根据Realm Report (2017-Q4,https://rea ...

  3. 新课程上线 | 学习使用 Kotlin 进行 Android 开发的最佳时机!

    作者 / Android 开发技术推广工程师 Kat Kuan 如今,越来越多的人希望考虑能够支持远程办公的职业,而从事应用开发或许可以实现.对于希望获得新机遇的人而言,即使过去没有编程经验,也可以立 ...

  4. Java vs Kotlin,Android开发人员应该选择哪种语言?

    自 Google 于 2017 年宣布 Kotlin 成为 Google IO 的 Android 开发官方语言以来,想要成为Android开发人员的程序员正陷入两难境地. 在讨论这个问题前,我首先要 ...

  5. 从零开始学android编程_小白也能学得会!谷歌推出免费的Kotlin和Android开发课程...

    程序员书库(ID:CodingBook) 猿妹编译 链接:https://android-developers.googleblog.com/2020/07/learn-android-and-kot ...

  6. 【翻译】ANDROID KTX – 使用Kotlin进行Android开发

    原文地址:ANDROID KTX – ANDROID DEVELOPMENT WITH KOTLIN [正在翻译中] 介绍 Android KTX is an open source library ...

  7. Kotlin成为Android开发首选语言——你绝对不能错过的

    继Java 和 C++ 之后,Google 在 I/O 2017 上宣布 Android 加入了对 Kotlin 编程语言的支持. 将Kotlin语言作为安卓开发的一级编程语言.Kotlin由JetB ...

  8. Kotlin在Android开发中那些让人舒适的地方,flutter项目实战

    val str = "hello" // str length : 5 print("KaTeX parse error: Expected '}', got 'EOF' ...

  9. 如果你现在学Android---学习使用Kotlin进行Android开发

    原文地址: http://www.eoeandroid.com/thread-902176-1-1.html?_dsign=650ea146 之前写了一篇<如果你现在学Android–写给新手的 ...

  10. 58APP引入Kotlin进行Android开发,kotlin高阶函数斐波那契

    kotlin代码可与java代码放到相同目录,但是放到一起回比较混乱,为了将kotlin与java代码隔离新建一个kotlin目录,并且sourceSets做以下修改 java.srcDirs = [ ...

最新文章

  1. 听说你是参加智能车比赛的?
  2. 北京AI产业联盟来了!百度牵头,小米美团滴滴旷视纷纷入会
  3. 笔记-项目合同管理-要约、承诺和要约邀请
  4. Python批量添加库搜索路径
  5. 1-1docker加速器
  6. kotlin 编译时常量_Kotlin程序| 编译时常量示例
  7. php 项目中引用对方接口_关于PHP中为什么要写接口的问题说明
  8. 人大提出新模型,将Two Stage的Video Paragraph Captioning变成One Stage,性能却没下降...
  9. 编程入门先学什么python-编程零基础应当如何开始学习 Python?
  10. 混淆矩阵confusion matrix
  11. Ubuntu下配置lazarus开发环境
  12. 《云计算核心技术剖析》学习笔记
  13. linux下安装java
  14. 如何调整Exadata DB节点文件系统大小
  15. UIM28RS-IE RS485/脉冲二合一28 闭环/开环步进一体机
  16. 555定时器原理及应用(报告)
  17. (转)Pod 2g简谈越狱的意义
  18. 汇率兑换Python
  19. 2019领克车展 Max Co币机诞生记
  20. 家乡菜之回锅茄子_wizard_新浪博客

热门文章

  1. thinkphp 每个页面自定义加载对应指定的js、css
  2. php 小米路由器_云水日记-捣鼓小米路由器开发版本
  3. 基于springboot+vue的医院预约系统(前后端分离)
  4. Servlet和Tomcat底层分析
  5. 计算机设备硬件设备,计算机硬件设备有哪些
  6. 下列属于usb转串口的芯片是_USB转串口常用芯片
  7. oracle帮助系统,Oracle1 0g扩展的帮助文件的安装
  8. php之通过curl模仿表单提交(get,post)抓取其他页面的内容
  9. 7-8 mmh学长的Excel表格 (20分)
  10. Centos7 安装solr及配置