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 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.demo_yunbu"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles 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来演示控件的操作:
<TextView android: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.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import 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添加:
// Anko compile "org.jetbrains.anko:anko-common:$anko_version" compile 'org.jetbrains.anko:anko-sdk15:0.8.2' // sdk19, sdk21, sdk23 are also available compile 'org.jetbrains.anko:anko-support-v4:0.8.2' // In case you need support-v4 bindings compile '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.AppCompatActivity
import android.os.Bundle
import 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 = 26f
onClick { 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工程中的应用
anko
使用Kotlin开发Android应用
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Kotlin
# Android
# Android Kotlin的使用及简单实例
# Kotlin开发Android应用实例详解
# 使用Kotlin开发Android应用教程
# 五分钟教你Android-Kotlin项目编写
# AndroidStudio kotlin配置详细介绍
# Android开发必备知识 为什么说Kotlin值得一试
# Android中使用Kotlin实现一个简单的登录界面
# Kotlin在Android工程中的应用详解
# 利用Kotlin开发你的第一个Android应用
# Android动画入门教程之kotlin
# 编程语言
# 是一门
# 就好了
# 使用了
# 完成后
# 也会
# 是有
# 很难
# 最多
# 就不
# 还能
# 是由
# 而来
# 请在
# 也很
# 作了
# 第二个
# 扩展名
# 弹出
# 掉了
相关文章:
深入理解Android中的xmlns:tools属性
公司网站的制作公司,企业网站制作基本流程有哪些?
,购物网站怎么盈利呢?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
定制建站流程步骤详解:一站式方案设计与开发指南
如何解决VPS建站LNMP环境配置常见问题?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
建站之星展会模板:智能建站与自助搭建高效解决方案
如何快速搭建高效WAP手机网站?
建站主机服务器选购指南:轻量应用与VPS配置解析
建站之星如何防范黑客攻击与数据泄露?
如何快速搭建高效简练网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
网站专业制作公司有哪些,做一个公司网站要多少钱?
购物网站制作公司有哪些,哪个购物网站比较好?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何用低价快速搭建高质量网站?
建站VPS能否同时实现高效与安全翻墙?
如何在阿里云ECS服务器部署织梦CMS网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
中山网站制作网页,中山新生登记系统登记流程?
网页设计网站制作软件,microsoft office哪个可以创建网页?
江苏网站制作公司有哪些,江苏书法考级官方网站?
长沙企业网站制作哪家好,长沙水业集团官方网站?
兔展官网 在线制作,怎样制作微信请帖?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
无锡营销型网站制作公司,无锡网选车牌流程?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
相册网站制作软件,图片上的网址怎么复制?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
高防服务器租用如何选择配置与防御等级?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
C#如何序列化对象为XML XmlSerializer用法
如何选择高效响应式自助建站源码系统?
建站之星多图banner生成与模板自定义指南
如何高效生成建站之星成品网站源码?
如何在IIS中新建站点并配置端口与物理路径?
如何零基础开发自助建站系统?完整教程解析
宝塔新建站点为何无法访问?如何排查?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何选择PHP开源工具快速搭建网站?
专业网站建设制作报价,网页设计制作要考什么证?
如何在Ubuntu系统下快速搭建WordPress个人网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
教学网站制作软件,学习*后期制作的网站有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。