使用Kotlin开发Android应用

来源:互联网 发布:js中控件隐藏和显示 编辑:程序博客网 时间:2024/05/16 06:58

转载请标明出处:夏轩_xiaxuan

1.kotlin介绍

  好久没有写博客了,前几天谷歌推出了一种新语言kotlin,简单来说,Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者。Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发。

相关网址

kotlin官网地址

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.Intentimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport 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.AppCompatActivityimport android.os.Bundleimport kotlinx.android.synthetic.main.activity_main.*import org.jetbrains.anko.custom.asyncimport org.jetbrains.anko.onClickimport org.jetbrains.anko.toastimport org.jetbrains.anko.uiThreadimport java.net.URLclass 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 等)并未介绍,请期待后续分享。

原创粉丝点击