背景

之前就看到过Kotlin这一门语言,也有不少大神和愿意走在知识最前沿的哥哥姐姐们说这一门语言有多么多么的好,但是本人并没有去了解他,直到前段时间Google大会直接说会支持Kotlin语言,所以我就抽出了一点时间准备学习一下,个人觉得到目前为止这个东西并不是什么刚需,有兴趣可以学习,不想学影响也不是很大,好了关于这门语言有多好,有多叼,我就不多少了,想要了解的出门百度,这里给上源码链接Kotlin-Android项目。

插件安装

环境搭建当然是第一步,也是最重要的一步,但是这个Kotlin的环境搭建却很简单,只要你安装插件就行,个人是Android开发,所以就直接用Android Studio为例:
File—>Setting—>Plugins—>搜索Kotlin
然后点击安装,最后重启Android Studio就行,我这个截图是安装过的

创建项目

Android项目的创建我就不多说了,因为它是Android本身的不涉及到Kotlin语言的,所以与我们平时创建的规则一样,不会的出门百度。

创建一个KotlinActivity

我们在创建的时候我们会发现,安装插件之后就多了这两个:
Kotlin File/Class 就是对应的Kotlin对象我们这次不用,就暂时不讲。
Kotlin Activity 就是我们要创建的KotlinActivity,我们选择它,编译器还是会跟创建普通的Activity帮我们创建布局文件和在AndroidManifest.xml中注册这个Activity。

Groud配置

个人在做第一个HelloWorld的时候就是卡在了这个地方,网上有些说创建KotlinActivity的时候编译器会帮助我们在build.gradle里面生成需要的配置,但是说实话我当时它并没有这么帮我干,那么我们怎么手动配置呢。
首先是项目最外面的build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
ext.kotlin_version = '1.1.2'
buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.3.0'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {jcenter()}
}task clean(type: Delete) {delete rootProject.buildDir
}

这个是我的完整的配置文件,其实大家只需要在根目录加上最上面那句话

ext.kotlin_version = '1.1.2'

这里有一个问题,我们到底要写什么版本号呢?我当时就遇到了这个肯,在网上拷贝了一个版本好结果怎么都运行不起来,其实这个版本号需要与我们安装的Kotlin插件的版本号一致,那么我们怎么查看自己安装的Kotlin版本号呢?
Tools—>Kotlin—>Config Kotlin Plugin Updates—>Check for updates now

好了,接下来我们来配置一下需要使用Kotlin语言的module的build.gradle配置


buildscript {repositories {jcenter()}dependencies {classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'android {compileSdkVersion 25buildToolsVersion "25.0.2"defaultConfig {applicationId "com.zxf.kotlin"minSdkVersion 15targetSdkVersion 25versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}
//    sourceSets {//        main.java.srcDirs += 'src/main/kotlin'
//    }
}dependencies {compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"compile 'com.android.support:appcompat-v7:25.1.1'compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
}

这个是我的配置文件,很清晰,主要就是在根目录最上层加上

buildscript {repositories {jcenter()}dependencies {classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

接下来就是在dependencies 中引用kotlin

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

好了配置的步骤到这就真的彻底结束了,接下来,我们看一下代码。

撸代码啦

我们先来看一下刚刚创建的KotlinActivity的代码

package com.zxf.kotlinimport android.os.Bundle
import android.support.v7.app.AppCompatActivityclass KotlinActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_kotlin)}
}

布局文件没有任何变化,首先,我们定义两个控件,一个TextView,一个Button并给它们设置上id

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/helloWorld"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/open_next"/>
</LinearLayout>

接下来,就是在Activity里面获取这两个控件了,让我们来看一下代码:

        helloWorld.text = "hello world"open_next.text = "Open Next Activity"open_next.setOnClickListener { startActivity(Intent(KotlinActivity@this,SecondActivity::class.java)) }

这三句话就完成了给TextView设置文字和给Button设置文字和添加点击事件,到这是不是发现,我擦真是超简单,烦人的findviewbyid()终于不见了,一些没有必要的new 和;也不需要了,简直就是太干净了。

总结

好了,这就完成了一个最简单的Android项目,这里也附上源码地址:
Kotlin-Android项目,我也会在后面个人的学习中不断完善这个项目,欢迎大家评论和提意见,共同成长。

五分钟教你Android-Kotlin项目编写相关推荐

  1. 五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看)

    五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看) 一.搭建vue环境 安装Nodejs 官网下载Nodejs,如果希望稳定的开发环境则下LTS(Long Time Support) ...

  2. JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)

    转载自   JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法, ...

  3. 梦幻西游三维获取服务器信息,梦幻西游三维版:潜能果上线后经验紧缺?五分钟教你快速获得经验...

    原标题:梦幻西游三维版:潜能果上线后经验紧缺?五分钟教你快速获得经验 目前<梦幻西游三维版>服务器等级最高在89级,其实从80级到89级需要不少的时间,再加上新上线了"潜能果&q ...

  4. tree老师:每天五分钟教你学linux基础命令02

    tree老师:每天五分钟教你学linux基础命令02 ls ls命令用于列出文件和目录.默认上,他会列出当前目录的内容.带上参数后,我们可以用ls做更多的事情.  比如,当我们刚刚改了文件,却不记得是 ...

  5. vue 插入word模板 项目_10 分钟为你的 vue 项目编写代码文档

    代码文档是软件开发使用和维护的必备资料,有了文档,开发和维护以及协作的效率将变得大大提升.tips:如果对 JSDoc 已经熟悉,可以直接跳到实战演练环节. 什么是文档?软件文档或者源代码文档是指与软 ...

  6. tree老师:每天五分钟教你学命令第1期

    本文由xiao_dou友情整理 点击标题下「蓝色微信名」可快速关注 在公司工作,我们第一个应该学会的命令,就是帮助命令,在遇到一些不懂的命令的时候可以使用man命令去查看man-pages文档. ma ...

  7. 【PHP】五分钟教你编写一个实时弹幕网站

    由于博主是个忠实的英雄联盟粉丝,所以经常观看一些明星大神的直播.而一谈到直播,肯定会看到满屏幕飘来飘去的弹幕.那么问题来了,这些视频弹幕网站如何做到实时同步的?PHP如何开发一个类似的网站? 首先要搞 ...

  8. 梦幻模拟战手游最新服务器,《梦幻模拟战手游》新手开服必读,五分钟教你成为高端玩家...

    大家好,8月16日<梦幻模拟战>将迎来一波全平台公测,我相信许多玩家都已经期待已久了.小修要跟你们说一句:"指挥官,你们久等了."今天,小修给大家带来干货中的干货,如何 ...

  9. 五分钟教你如何用函数计算部署钉钉群发机器人

    如果你是钉钉多个群的管理员,想要在多个钉钉群群发消息的时候,是不是还在为要寻找所有的群,并不断的复制黏贴消息而烦恼? 过去的你:(N 个群,N 次操作) 现在的你:(N 个群,1 次操作) 本篇文章适 ...

最新文章

  1. 大红灯笼高高挂专业影评_浅谈《大红灯笼高高挂》
  2. Redis java使用
  3. c语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出,从键盘上输入3个数,将它们按由大到小的顺序排列好输出...
  4. SparkSQL程序设计
  5. iReport 5.添加修改删除jdbc
  6. 使用python+ffmpeg批量转换格式
  7. 【HDU - 5873】Football Games(兰道定理,知识点总结)
  8. 查询数据插入别一张表中
  9. 怎么写显示商品图片_虾皮商店封面图片 虾皮商店介绍怎么写吸引人
  10. 类和对象在JVM中是如何存储的,竟然有一半人回答不上来!
  11. firefox访问页面 直接显示代码问题问题解决办法
  12. DVD-Cloner 2021 for mac(DVD光盘刻录工具)
  13. [原创]java导出excel
  14. 一场云计算基础设施的饕餮盛宴 --- OpenStack柏林峰会见闻及感想
  15. 大学计算机应用基础教程pdf,最新大学计算机应用基础教程
  16. PIFA 天线的推论及计算方法
  17. java架构师有哪些证书,22年最新
  18. 阿酷三合一版_3dmax阿酷插件
  19. 计算机网络提供信息传输服务,计算机网络通常被划分为通信子网和资源子网,通信子网提供信息传输服务,资源子网提供共享资源。...
  20. 详解线上线下收单业务(2)

热门文章

  1. Kafka组消费之Rebalance机制
  2. JAVA 打豆豆辅助工具
  3. 云端的精彩:让信息在指尖流动
  4. goldwave混音功能—把两个音效文件合并在一起
  5. Processing画小黄人
  6. poj 1583 Choose Your Words Carefully
  7. mac 好玩的软件推荐
  8. 2020_WWW_The Structure of Social Influence in Recommender Networks
  9. 闲鱼疯转 6800 份!大厂内部数据分析资料首公开!
  10. android 权威编程指南 笔记 2018-09-01