全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

如何使用Kotlin进行Android开发

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  # 编程语言  # 是一门  # 就好了  # 使用了  # 完成后  # 也会  # 是有  # 很难  # 最多  # 就不  # 还能  # 是由  # 而来  # 请在  # 也很  # 作了  # 第二个  # 扩展名  # 弹出  # 掉了 


相关文章: 沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  如何快速重置建站主机并恢复默认配置?  建站之星代理商如何保障技术支持与售后服务?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?    如何配置IIS站点权限与局域网访问?  建站主机SSH密钥生成步骤及常见问题解答?  动图在线制作网站有哪些,滑动动图图集怎么做?  定制建站是什么?如何实现个性化需求?  公众号网站制作网页,微信公众号怎么制作?  济南专业网站制作公司,济南信息工程学校怎么样?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何通过PHP快速构建高效问答网站功能?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何通过商城自助建站源码实现零基础高效建站?  北京网站制作的公司有哪些,北京白云观官方网站?  如何快速配置高效服务器建站软件?  建站主机如何选?性能与价格怎样平衡?  如何通过VPS建站无需域名直接访问?  如何通过虚拟主机快速搭建个人网站?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  导航网站建站方案与优化指南:一站式高效搭建技巧解析  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何通过主机屋免费建站教程十分钟搭建网站?  建站之星后台密码如何安全设置与找回?  建站之星如何实现五合一智能建站与营销推广?  如何高效利用亚马逊云主机搭建企业网站?  建站之星安装模板失败:服务器环境不兼容?  在线制作视频网站免费,都有哪些好的动漫网站?  如何在建站主机中优化服务器配置?  定制建站价位费用解析与套餐推荐全攻略  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何选择可靠的免备案建站服务器?  建站为何优先选择香港服务器?  建站上市公司网站建设方案与SEO优化服务定制指南  建站主机选哪种环境更利于SEO优化?  黑客入侵网站服务器的常见手法有哪些?  北京企业网站设计制作公司,北京铁路集团官方网站?  如何通过虚拟机搭建网站?详细步骤解析  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何在腾讯云免费申请建站?  如何在服务器上三步完成建站并提升流量?  建站主机CVM配置优化、SEO策略与性能提升指南  建站之星安装失败:服务器环境不兼容?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。