Hello Kotlin

今天使用了一下kotlin, Google指定的Android官方开发语言。简单记录一下。

一、使用Android Studio 配置开发环境

我的AS版本是2.2.2,在打开AS之后,只需要在File-Settings-Plugins-Brower Repositories中搜索KOTLIN插件,点击安装,59.3Mb大。安装完成之后,重新启动AS即可。

二、使用kotlin

和平常一样,新建项目,然后点击Code-Convert JAVA file to kotlin file即可将新建的项目中的java语言转换为kotlin。之后点击AS自动弹出的Config和SYNC。既可有AS自己向gradle中添加依赖。helloworld程序便可以运行。
kotlin的初始化onCreate是这样子的

package com.example.guofang.learnkotlin

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import android.widget.Toast

class MainActivity : AppCompatActivity() {

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

是不是感觉很简洁的样子?
接下来牛刀小试,定义一个texview,为之设置点击事件。

package com.example.guofang.learnkotlin

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import android.widget.Toast

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val textView=findViewById(R.id.tv_test)as TextView
        textView.setOnClickListener {
            Toast.makeText(this,"This is my first kotlin code!",Toast.LENGTH_LONG).show()
        }
    }
}
![实现后是这样的](http://img.blog.csdn.net/20170809082041704?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXEzNTY2NTMyNDY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

其他

Kotlin确实非常简洁,有很多java不具备的优点
在jvm的基础上特别在安全性做了很大的改进。。很多的特性基本杜绝了一些不安全的编码,并且做了类似 RASP 的安全方案。
官方也宣传说对Java 100%兼容.

1.FindViewById

由于有了插件kotlin-android-extensions.

Activity里可以这样写,不需要在额外申明TextView变量了。所以注意xml文件里id的命名使用驼峰写法

 setContentView(R.layout.main)
        tvTitle.setOnClickListener { toast("hello") }

Adapter里这样写, ViewHolder完全不需要了

 view.tvName.text = notice.name
   view.tvNumber.text = ""
   view.ivIcon.setImageUrlAsync(icon, true)

2.注意在kotlin中== 相当于java中的equal函数,=== 相当于java中的==。不过一般情况加==就够了。kotlin中没有基本类型,所有的如Int,Long都是对象。

3.Koltin的Null处理

使用安全操作符?可以省略很多无意义判空操作

不多说,直接上代码,一看就都明白了。

以前这样写

 if (adapter != null) {
        List list = adapter.getDatas();
                if (list != null) {
                    for (CmdNotice it :list) {
                        if (it.getId() == notice.getId()) {
                            it.setStatus(notice.getStatus());
                            adapter.notifyDataSetChanged();
                            break;
                        }
                    }
                }
        }

现在这样写

adapter?.datas?.firstOrNull({ it.id == notice.id })?.let {
                    it.status = notice.status
                    adapter?.notifyDataSetChanged()
                }

你可能感兴趣的:(我的原创)