转载请标明出处:夏轩_xiaxuan
1.kotlin介绍
好久没有写博客了,前几天谷歌推出了一种新语言kotlin,简单来说,Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者。Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发。
相关网址
2.执行 Settings -> plugins -> BrowseRepositories中搜索“Kotlin”
点击“Install JetBrains plugin”
2.1.其实新建kotlin和之前创建Activity方式是一样的,但是这里选择的是:
2.2当我们第一次创建一个Kotlin类后,会弹出一个Configure Kotlin的弹窗:
2.3点击as Kotlin module 点击ok即可
2.4,接下来我们看下在项目的跟build.gradle中配置:
buildscript {
ext.kotlin_version = '1.1.2-4'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
2.5而在module的build.gradle中:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "yizong.mores.com.day03"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile 'org.jetbrains.anko:anko-sdk15:0.9' // sdk19, sdk21, sdk23 are also available
compile 'org.jetbrains.anko:anko-support-v4:0.9' // In case you need support-v4 bindings
compile 'org.jetbrains.anko:anko-appcompat-v7:0.9' // For appcompat-v7 bindings
}
repositories {
mavenCentral()
}
这里要注意的几个地方:
3.0现在我们来看下kotlin里面的写法:
然后可以直接使用变量tv进行操作了,非常方便,再也不用每个控件用findViewById查找一遍了(xml布局和之前写法一样)。
以下是完整的代码:
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.activity_main2.*
class Main2Activity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
tv.text = "nihao"
tv.textSize = 16f
btn.textSize=16f
//这里Button点击事件: btn.setOnClickListener({startActivity(Intent(Main2Activity@ this, MainActivity::class.java)) })
}
}
看下xml 布局也很简单:
3.1下面我们看下另一个跳转类:
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import org.jetbrains.anko.custom.async
import org.jetbrains.anko.onClick
import org.jetbrains.anko.toast
import org.jetbrains.anko.uiThread
import java.net.URL
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
tvmess.text="网络请求"
tvmess.textSize=18f
tvmess.onClick {
toast("好牛逼的toast")
async() {
val result=URL("https://www.baidu.com/").readText()
uiThread {
//这里直接写主线程更新
tvmess.text=result
}
}
}
}
}
最终运行如图所示:
小结:
Android Studio中还有一个关于Kotlin很实用的操作,就是将Java源代码转化为Kotlin代码:
执行code–> Convert Java File to Kotlin File
由于篇幅所限,Kotlin 还有诸多特性(类扩展,函数运用,DSL 等)并未介绍,请期待后续分享。