000 初步使用Kotlin开发Android应用
Kotlin是Jetbrians公司开发的一款编程语言,基于jvm兼容Java。
要求
IDE:IDEA或者Android Studio(简称studio)
对Kotlin语言有所了解,官方文档:https://kotlinlang.org/docs/reference/
在studio中安装kotlin插件:

创建一个Kotlin类的Activity

在弹出对话框中选择创建类:

一旦该类创建好之后会在编辑区的右上角出现警告提示:

点击警告中的蓝色字体会出现以下对话框:

两个单选,让你选择为整个项目中所有的module使用kotlin还是只有一个特定的module使用Kotlin。“Choose Kotlin plugin version”选择Kotlin的版本。配置好之后点击“OK”按钮。在编辑区右上角出现一下提示:

此时支持Kotlin的module中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代码指引

使用代码转换工具,并且有快捷键提示,每个平台的快捷键有可能不同。
转换后的代码:
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项目学习。
参考文章:http://code.tutsplus.com/tutorials/how-to-use-kotlin-in-your-android-projects--cms-24052
000 初步使用Kotlin开发Android应用的更多相关文章
- 用Kotlin开发Android应用(II):创建新项目
这是关于Kotlin的第二篇.各位高手发现问题,请继续“拍砖”. 原文标题:Kotlin for Android(II): Create a new project 原文链接:http://anton ...
- 用Kotlin开发Android应用(I):介绍
关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Ko ...
- 使用Kotlin开发Android应用(I):简单介绍
使用Kotlin开发Android应用(I):简单介绍 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 Kotlin是一门基于JVM的编程语言.它正成长为Androi ...
- 让你的代码量减少3倍!使用kotlin开发Android(二) --秘笈!扩展函数
本文承接上一篇文章:让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客wing的地方酒馆 上一节说到,kotlin可以省去getter,se ...
- 让你的代码量减少3倍!使用kotlin开发Android(一)
让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客:wing的地方酒馆 写在前面 使用kotlin开发android已经两周多了.得到的好处 ...
- 使用Kotlin开发Android应用 - 环境搭建 (1)
一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...
- 使用Kotlin开发Android应用(II):创建新工程
在基本了解什么是Kotlin以及Kotlin可以做什么之后,接下来就到了配置Android Studio并使用Kotlin开发Android apps的时候了.首次配置Android Studio需要 ...
- 使用Kotlin开发Android
查看我的所有开源项目[开源实验室] 欢迎增加我的QQ群:[201055521],本博客client源代码下载[请点击] 摘要 我首先声明我并没有使用Kotlin非常长时间,我差点儿是在学习的同一时候写 ...
- 用Kotlin开发Android应用(IV):定制视图和Android扩展
原文标题:Kotlin for Android (IV): Custom Views and Android Extensions 原文链接:http://antonioleiva.com/kotli ...
随机推荐
- CCNA2.0笔记_NAT
NAT:园区网内的PC是私有地址,整个园区网共享一个公有IP,如果园区网内的PC不做NAT,那么在发数据包给外网的时候会出现传输问题 NAT的原理:改变IP包头,使目的地址.源地址或两个地址在包头中被 ...
- iOS swift 启动页加载广告(图片广告+视频广告)
一般app在启动的时候都会有广告页,广告页用来加载自己的或者第三方的广告,广告的展示形式也多种多样,最近在看swift相关的东西,这里将提供支持加载图片广告和视频广告的解决方案 思路: 我们知道在加载 ...
- Unix系统编程()close系统调用
close系统调用关闭一个打开的文件描述符,并将其释放回调用进程,供该进程继续使用.当一进程终止时,将自动关闭其已打开的所有文件描述符. int close(int fd); 显式关闭不再需要的文件描 ...
- pl/sql 实例精解 05
本章主要讨论 case 语句 1: case [SELECTOR] 2: when expression 1 then statement 1; 3: when expression 2 then s ...
- 【BZOJ】1596: [Usaco2008 Jan]电话网络(树形dp+特殊的技巧)
http://www.lydsy.com/JudgeOnline/problem.php?id=1596 一开始交了个貌似正确的dp,wa了. 我只考虑了儿子覆盖的情况,没有考虑父亲QAQ 那么我们要 ...
- CentOS 7如何设置Linux开机自动获取IP地址
centos7 minimal版默认安装好后没有获取ip地址,需要手动配置.方法如下: 1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录 ...
- Accept-Encoding 使用
[总结] 想要获得正确网页内容,而非乱码的话,就有两种方式了: 1.不要设置Accept-Encoding的Header //req.Headers.Add("Accept-Encoding ...
- java拆装箱(转)
转载:http://www.cnblogs.com/dolphin0520/p/3780005.html 深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就 ...
- [读书笔记]java核心技术
ps:有时间好好整理下格式.从别的编辑器拷贝过来啥都没了. ~~~~~~~~~~~~~~· 2.java程序设计环境 JDK 开发java使用的软件: JRE 运行java使用的软件: SE 用于桌面 ...
- oracle游标:查询并打印员工的姓名和薪水
--查询并打印员工的姓名和薪水 --set serveroutput on /* 1.光标的属性 %found:假设取到了记录就是true否则是false: %notfound: */ declare ...