如何在Android项目中使用Kotlin

本文是作者阅读How to Use Kotlin in Your Android Projects,按照文章实现了一遍,并将实现过程中碰到的坑总结出来的文章。

简介

Kotlin是由JetBrains设计的开源编程语言,它在java开发者圈子中越来越受欢迎,更有甚者称之为java的继承者。相比于java,Kotlin提供了丰富的开发经验,因为他更加现代、简洁且富有表现力。

如果你正在为Android开发寻找一种替代语言,你可以试一试Kotlin,它可以单独使用,也可以和java混合一起使用。阅读本文,你将会了解如何在Android Studio的工程中使用Kotlin和Kotlin plugings。

前期准备

1. 安装Kotlin Plugins

在Android Studio的快速启动菜单,选择Config -> Plugins

快速开始菜单

快速开始菜单


在下一屏,点击Install JetBrains plugin...

kot3b.pnguploading.4e448015.gif转存失败重新上传取消


从列表中选择Kotlin Extensions For Android,并点击Install Plugin进行安装

kotB.pnguploading.4e448015.gif转存失败重新上传取消


因为这里安装的plugin是依赖于Kotlin plugin的,所以安装上面的plugin的时候会询问是否要一起安装Kotlin plugin。这里我们只要点击Yes就可以了。

kotC.pnguploading.4e448015.gif转存失败重新上传取消


当安装完成后,重启Android Studio让插件都生效。

 

2.生成一个Kotlin类型的Activity

在Android Studio中选中src的目录,右击选择New > Kotlin File

kot5.pnguploading.4e448015.gif转存失败重新上传取消


在弹出的dialog中输入Activity的名字,并选择类型为Class


当class建立的时候,会有弹框提示我们配置工程支持Kotlin。


这里只要点击OK即可,使用默认配置,最后同步一下build.gradle文件即可。

 

 

3.使用Kotlin

Activity中的代码如下

 

package com.example.zr.kotlindemo

import android.support.v7.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {    
   override fun onCreate(savedInstanceState: Bundle?) {       
       super.onCreate(savedInstanceState)     
       val myMessage = TextView(this)  
       myMessage.setText("Hello Kotlin");       
       setContentView(myMessage);
   }
}

在AndroidManifest.xml中的设置与使用java编写的的方式没有区别。

4.使用Kotlin Android Extensions

Kotlin Android Extensions是一个让你可以像使用属性一样调用在XML文件中声明的控件,这样你就再也不需要调用findViewById了。
为了使用这个特性,我们需要在app的module依赖中添加如下依赖:

 

buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }
}

然后新建一个新的Activity为MainActivity.kt,它的布局文件activity_main.xml如下所示:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/myMessage" />

    <Button
        android:id="@+id/myButton"
        android:text="go to next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

然后Activity中的代码如下:

 

package com.example.zr.kotlindemo

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)

        myMessage.setText("Hello Kotlin XML");
        myButton.setOnClickListener {
            startActivity(Intent(this, Main2Activity::class.java));
        }
    }
}

运行截图如下:

 

注意,作者按照文章步骤在此碰到一个编译错误,报Unresolved reference: kotlinx错误。这里可能是Android Studio的一个bug,需要我们手动在app的build.gradle文件中添加一句语句:apply plugin: 'kotlin-android-extensions'。具体问题解释可以看这里

5.将java文件转换为Kotlin文件

这个最简单,只需要几步操作就可以了。选中我们要转换的文件,然后选择Code > Convert Java File to Kotlin File,如下图:


转换成功后,请注意文件后缀也从.java变为.kt了。

发布了335 篇原创文章 · 获赞 173 · 访问量 37万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览