7

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

 2 years ago
source link: http://www.androidchina.net/6934.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

kotlin.jpg

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

感谢单灿灿供稿

原文链接:http://blog.csdn.net/zhcswlp0625/article/details/72541020

转载请注明:Android开发中文站 » Kotlin开发Android系列文章(一)——初识Kotlin


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK