在android studio用kotlin来编写代码(三)

来源:互联网 发布:c 程序员简历 编辑:程序博客网 时间:2024/06/10 18:37
首先,打开Android Studio并选择Create new Project,。我们选择API 15,同时新建一个Blank Activity。暂时可以不用去关心Activity的名字,layout等,我们暂时用不到,在这里我们先展示一下如何编写kotlin代码以及它的一些特性。若你的android studio没有安装kotlin插件,安装教程如下,在Android Studio中打开Settings,选择Plugins选项,点击Browse Repositories,在打开的新窗口中搜索Kotlin,选择Kotlin与 Kotlin Extenslons For Android(obsolete)两个插件分别进行下载安装。当插件安装完毕后,重启Android Studio即可。Kotlin插件包括一个让我们配置Gradle的工具。但是我还是倾向于保持我对Gradle文件读写的控制权,否则它只会变得混乱而不会变得简单。不管怎么样,在使用自动工具之前知道它是怎么工作的是个不错的主意。所以这次,我们将手动去做,在这里我们会修改**父build.gradle**,如下,
    buildscript {    ext.support_version = '23.1.1'    ext.kotlin_version = '1.0.0'    ext.anko_version = '0.8.2'    repositories {        jcenter()        dependencies {            classpath 'com.android.tools.build:gradle:1.5.0'            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"        }    }}allprojects {    repositories {        jcenter()     }}
   正如你看到的,我们创建了一个变量来存储当前的Kotlin版本。你读到这里的时候去检测一下最新版本,因为可能会有更新的版本已经发布了。我们需要在几个不同的地方用到那个版本号,比如你需要加上新的Kotlin插件的dependency。你会在你指定的那些模块中的build.gradle中再次需要到Kotlin标准库。我们对于support library也是如此,Anko库也是同样的做法。用这个方式可以更方便地在一个地方修改所有的版本号。并且使用相同的版本号,更新的时候也不需要每个地方都修改。统一管理,我觉得这就是软件开发过程中需要的内聚,减少耦合度。我们会增加Kotlin标准库,Anko库,以及Kotlin和Kotlin Android Extensions plugin插件到dependencies。这里修改模块**build.gradle**
apply plugin: 'com.android.application'apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'android {    ...}dependencies {    compile "com.android.support:appcompat-v7:$support_version"    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"    compile "org.jetbrains.anko:anko-common:$anko_version"}buildscript {    repositories {      jcenter()     }    dependencies {      classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"    } }    
注意,Anko是一个用来简化一些Android任务的很强大的Kotlin库。我们之后将会学习部分anko,但是现在来说仅仅增加anko-common就足够了。这个库被分割成了一系列小的部分,所以我们不会把没用到的部分加进来。到这一步,我们就基本把kotlin开发环境搭建好了,下面,我们就可以尝试编写我们的第一个程序了。Kotlin plugin包含了一个有趣的特性,它能把Java代码自动转成Kotlin代码。虽然这样的转换可能会有很多问题,但是,在你能够使用Kotlin语言开始编写代码之前,它还是能提供不少的帮助。所以我们在刚才新建的android studio 项目中,在MainActivity.java类中使用它。打开文件,然后选择Code -> Convert Java File to Kotlin File。我们可以对比一下java和kotlin的不同之处,让大家有个更深刻的印象。首先,打开activity_main.xml,然后设置TextView的id:
<TextView    android:id="@+id/message"    android:text="@string/hello_world"    android:layout_width="wrap_content"    android:layout_height="wrap_content"/>
在onCreate中,你现在可以直接得到并访问这个TextView了。注意给TextView文本赋值的方法。
override fun onCreate(savedInstanceState: Bundle?) {    super.onCreate(savedInstanceState)    setContentView(R.layout.activity_main)    message.text = "Hello Kotlin!"}
多亏Kotlin和Java之间的互操作性,我们可以在Kotlin中像操作属性一样去操作Java库中的getter/setter方法。我们之后再去讲解属性,但是我想提醒的是,我们可以使用message.text来代替message.setText。编译器将会把它转换成一般的Java代码,所以这样使用是没有任何性能开销的。