000 初步使用Kotlin开发Android应用
2017-04-10 12:25
429 查看
Kotlin是Jetbrians公司开发的一款编程语言,基于jvm兼容Java。
对Kotlin语言有所了解,官方文档:https://kotlinlang.org/docs/reference/
![](http://upload-images.jianshu.io/upload_images/407733-ce0376ac81c65340.png?imageMogr2/auto-orient/strip%7CimageView2/2)
Kotlin插件
![](http://upload-images.jianshu.io/upload_images/407733-53293a7bed999e1b.png?imageMogr2/auto-orient/strip%7CimageView2/2)
创建Kotlin类
在弹出对话框中选择创建类:
![](http://upload-images.jianshu.io/upload_images/407733-104b50d360a2ef1d.png?imageMogr2/auto-orient/strip%7CimageView2/2)
MainActivity.kt
一旦该类创建好之后会在编辑区的右上角出现警告提示:
![](http://upload-images.jianshu.io/upload_images/407733-54b0eda614a9628b.png?imageMogr2/auto-orient/strip%7CimageView2/2)
Kotlin支持警告
点击警告中的蓝色字体会出现以下对话框:
![](http://upload-images.jianshu.io/upload_images/407733-c6a6950432704b48.png?imageMogr2/auto-orient/strip%7CimageView2/2)
在工程中配置Kotlin
两个单选,让你选择为整个项目中所有的module使用kotlin还是只有一个特定的module使用Kotlin。“Choose Kotlin plugin version”选择Kotlin的版本。配置好之后点击“OK”按钮。在编辑区右上角出现一下提示:
![](http://upload-images.jianshu.io/upload_images/407733-64db6a18d0d75fe3.png?imageMogr2/auto-orient/strip%7CimageView2/2)
配置完成之后的提示
此时支持Kotlin的module中build.gradle已经备选修改,如下提示:
![](http://upload-images.jianshu.io/upload_images/407733-bdb1450ce3de99a9.png?imageMogr2/auto-orient/strip%7CimageView2/2)
build.gradle被修改
此时点击Sync Now同步build.gradle
到此为止MainActivity创建成功,但是它还不是一个Activity子类,需要继承
Activity。
此时ManiActivity还不是一个Activity,添加如下代码使之成为一个Activity
习惯使用Java的猿类可能会感到奇怪,“:”号在Kotlin语法中表示继承,为什么要继承Activity()而不是Activity,这与Kotlin语法有关。
覆写OnCreate方法,并且创建一个TextView用于显示文本。
Kotlin比Java更简洁此处可以看到
创建一个ExtensionsActivity,并创建一个extensions_activity布局文件,布局文件中包含一个TextView,代码如下:
ExtensionsActivity:
extensions_activity:
修改Build.gradle中文件:添加kotlin-android-extensions插件
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"说明使用kotlin-android-extensions插件
修改ExtensionsActivity代码,获取TextView组件并使用,代码会简单的多。
说明:
import kotlinx.android.synthetic.activity_extensions.text
意思是引入activity_extensions布局中id为text的组件。
若要引入activity_extensions布局中的所有组件写法为:
import kotlinx.android.synthetic.activity_extensions.*;
将Java代码传唤为Kotlin代码指引
![](http://upload-images.jianshu.io/upload_images/407733-bc84f048d27e1209.png?imageMogr2/auto-orient/strip%7CimageView2/2)
代码转换工具
使用代码转换工具,并且有快捷键提示,每个平台的快捷键有可能不同。
转换后的代码:
Android项目中使用Kotlin,Kotlin插件和Kotlin Android Extensions插件。由于Kotlin与Java有极大的交互性,如果继续坚持学习Kotlin,建议在Android项目学习。
要求
IDE:IDEA或者Android Studio(简称studio)对Kotlin语言有所了解,官方文档:https://kotlinlang.org/docs/reference/
在studio中安装kotlin插件:
![](http://upload-images.jianshu.io/upload_images/407733-ce0376ac81c65340.png?imageMogr2/auto-orient/strip%7CimageView2/2)
Kotlin插件
创建一个Kotlin类的Activity
![](http://upload-images.jianshu.io/upload_images/407733-53293a7bed999e1b.png?imageMogr2/auto-orient/strip%7CimageView2/2)
创建Kotlin类
在弹出对话框中选择创建类:
![](http://upload-images.jianshu.io/upload_images/407733-104b50d360a2ef1d.png?imageMogr2/auto-orient/strip%7CimageView2/2)
MainActivity.kt
一旦该类创建好之后会在编辑区的右上角出现警告提示:
![](http://upload-images.jianshu.io/upload_images/407733-54b0eda614a9628b.png?imageMogr2/auto-orient/strip%7CimageView2/2)
Kotlin支持警告
点击警告中的蓝色字体会出现以下对话框:
![](http://upload-images.jianshu.io/upload_images/407733-c6a6950432704b48.png?imageMogr2/auto-orient/strip%7CimageView2/2)
在工程中配置Kotlin
两个单选,让你选择为整个项目中所有的module使用kotlin还是只有一个特定的module使用Kotlin。“Choose Kotlin plugin version”选择Kotlin的版本。配置好之后点击“OK”按钮。在编辑区右上角出现一下提示:
![](http://upload-images.jianshu.io/upload_images/407733-64db6a18d0d75fe3.png?imageMogr2/auto-orient/strip%7CimageView2/2)
配置完成之后的提示
此时支持Kotlin的module中build.gradle已经备选修改,如下提示:
![](http://upload-images.jianshu.io/upload_images/407733-bdb1450ce3de99a9.png?imageMogr2/auto-orient/strip%7CimageView2/2)
build.gradle被修改
此时点击Sync Now同步build.gradle
到此为止MainActivity创建成功,但是它还不是一个Activity子类,需要继承
Activity。
使用Kotlin创建Activity类
已经创建好的ManiActivity:class MainActivity { }
此时ManiActivity还不是一个Activity,添加如下代码使之成为一个Activity
import android.app.Activity class MainActivity: Activity() { }
习惯使用Java的猿类可能会感到奇怪,“:”号在Kotlin语法中表示继承,为什么要继承Activity()而不是Activity,这与Kotlin语法有关。
覆写OnCreate方法,并且创建一个TextView用于显示文本。
import android.app.Activity import android.os.Bundle import android.widget.TextView class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val textView = TextView(this) textView.text = "Hello Kotlin" setContentView(textView) } }
Kotlin比Java更简洁此处可以看到
使用kotlin-android-extensions插件
作用:使用kotlin-android-extensions插件可以让你不使用findViewById方法也能使用组件。创建一个ExtensionsActivity,并创建一个extensions_activity布局文件,布局文件中包含一个TextView,代码如下:
ExtensionsActivity:
import android.app.Activity import android.os.Bundle class ExtensionsActivity: Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } }
extensions_activity:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" /> </RelativeLayout>
修改Build.gradle中文件:添加kotlin-android-extensions插件
buildscript { ext.kotlin_version = '1.0.0-beta-4584' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } }
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"说明使用kotlin-android-extensions插件
修改ExtensionsActivity代码,获取TextView组件并使用,代码会简单的多。
import android.app.Activity import android.os.Bundle import kotlinx.android.synthetic.activity_extensions.text; class ExtensionsActivity: Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_extensions); text.text = "Dota" } }
说明:
import kotlinx.android.synthetic.activity_extensions.text
意思是引入activity_extensions布局中id为text的组件。
若要引入activity_extensions布局中的所有组件写法为:
import kotlinx.android.synthetic.activity_extensions.*;
将Java代码转换为Kotlin代码
创建名为JavaToKotlinActivity的Activity:public class JavaToKotlinActivity extends AppCompatActivity { private int a, b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_java_to_kotlin); a = 10; b = 20; Log.i("bail", "sum of a + b = " + (a + b)); } }
将Java代码传唤为Kotlin代码指引
![](http://upload-images.jianshu.io/upload_images/407733-bc84f048d27e1209.png?imageMogr2/auto-orient/strip%7CimageView2/2)
代码转换工具
使用代码转换工具,并且有快捷键提示,每个平台的快捷键有可能不同。
转换后的代码:
import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.util.Log class JavaToKotlinActivity : AppCompatActivity() { private var a: Int = 0 private var b: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_java_to_kotlin) a = 10 b = 20 Log.i("bail", "sum of a + b = " + (a + b)) } }
总结
在这篇文章中你已经初步学会在Android Studio中安装Kotlin插件,并在Android项目中使用Kotlin,Kotlin插件和Kotlin Android Extensions插件。由于Kotlin与Java有极大的交互性,如果继续坚持学习Kotlin,建议在Android项目学习。
相关文章推荐
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用(III):扩展函数和默认值
- 使用Kotlin开发Android应用(I):简介
- 使用Kotlin优雅的开发Android应用
- 使用Kotlin开发Android应用 - 环境搭建 (1)
- 使用Kotlin开发Android应用教程
- Kotlin简单实用方法既使用Kotlin优雅的开发Android应用
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用的初体验
- Android移动应用开发初步——关于android studio的使用
- 使用Kotlin开发Android应用(I):简介
- 使用Kotlin开发Android应用(II):创建新工程
- 使用Kotlin开发Android应用(III):扩展函数和默认值
- Kotlin简单实用方法既使用Kotlin优雅的开发Android应用
- 使用Kotlin开发Android应用(IV):自定义视图和Android扩展
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用(II):创建新工程
- 使用Kotlin开发Android应用(I):简单介绍
- 使用Kotlin开发Android应用
- Android应用开发中CardView的初步使用指南