Kotlin开发Android系列文章(一)——初识Kotlin

5月18日消息 据外媒(TechCrunch)报道,谷歌在今日举行的I/O开发者大会上宣布,将Kotlin语言作为安卓开发的一级编程语言。Kotlin由JetBrains公司开发,与Java 100%互通,并具备诸多Java尚不支持的新特性。

Kotlin简单的说就是跑在jvm上的新语言,他的特点就是短小快。

  • 无缝对接java,java代码和kotlin代码互相调用
  • 一键java转kotlin,java代码,可以一键转换
  • 函数扩展功能

    Kotlin从书写上来说非常爽,语法糖的确减少了很多时间以及代码量, 但是-再牛逼的语法解决不了傻逼的业务和逻辑需求。

下面让我们来了解一下如何使用Kotlin:

创建第一个kotlin应用!

首先打开你的AS,像往常一样,创建一个Android应用。

然后在Setting里找到Plugin选项,搜索kotlin插件。从官方仓库下载安卓即可。

在app的gradle下加入如下代码

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

在project的gradle下加入如下代码

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    }

好了,配置好了,切换到MainActivity 同时按下ctrl + alt + shift + k (windows下),cmd + alt + shift + k (mac下),即可把java代码转换成kotlin代码。

转换前:

public class MainActivity extends AppCompatActivity {

  @Override protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  }
}

转换后:

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
  }
}

这些是语法的变化

下面给出中文语法文档

这里是下载地址

真TM是个好的糖炒栗子

来,让我们来上一下它。

<TextView
        android:id="@+id/main_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Hello World!"/>

在代码中改变文字设置:

main_text.setText(R.string.kotlin)
//或者用下面方法
main_text.text=("PowerFullKotlin")

WHAT???怎么不需要findviewbyid()???

kotlin可以直接根据id找到控件,而避免findviewbyid,这时候你需要注意一下import头

import kotlinx.android.synthetic.main.activity_main.*

kotlin一个特性,所有getter和setter可以省略,直接变为 .text

下面让我们看一下点击事件的设置

函数扩展是什么?一般来说,我们扩展一个类,需要继承,但是kotlin。。。。

函数扩展可以让你对任意类进行扩展,而不用继承等等复杂的操作。

示例:给一张图片设置点击事件弹出Toast

<ImageView
     android:id="@+id/main_pic"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@+id/main_text"
     android:layout_marginTop="15dp"
     android:clickable="true"
     android:focusable="true"
     android:src="@mipmap/welcome"/>

上实现方式:

main_pic.setOnClickListener { toast("Hello Kotlin") }

我们新建个kt文件,叫做ToastExt

里面写上如下代码:

fun Context.toast(mess: String,length : Int = Toast.LENGTH_SHORT) {
        Toast.makeText(this, mess, length).show()
}

加了Context这句,就可以在所有Context类型中使用toast这个函数了。具体的语法是 fun + 类型.函数(参数)

来看一下第二个参数,可以给默认值,如果参数不传,则自动调用默认值,重载!!!

main_pic.setOnClickListener { toast("Hello Kotlin") }

是不是超级终极简单呢?是不是想赶快转来kotlin啊?

下面附gayhub地址(这个项目专门用来更新Kotlin有关Demo): https://github.com/Shanlovana/Consonle

我来评几句
登录后评论

已发表评论数()