分享下学习Kotlin的历程-环境/简单使用

转载请注明出处:王亟亟的大牛之路

从4月开始到现在 一直都在忙React-Native项目的事,途中基本没碰安卓代码,Kotlin这一块之前张涛/医生他们这些先行者开始写文章的时候就已经有所了解,直至”上位”后也没时间静下来钻研,最近逼着自己要静下心来攻克一下,所以写点东西记录一下。

内容各平台也许有重复的,我也不首发,只是自己的理解和整理,键盘侠就不要装逼了,谢谢

在”旧”的编译器Eclipse也做了支持,但是本文都是用AS操作的,用”EC”的恕我无法解决,请原谅


集成

AS 3.0自带集成了Kotlin的插件,但是并不是稳定”绿色”版本,出于强迫症的原因,并没有使用3.0
旧版可以使用下JetBrains plugin
这里写图片描述

如果一直在这里卡条,这里童工一个下载地址:https://plugins.jetbrains.com/plugin/6954-kotlin

安装完重启下AS就OK了

然后就是初始化一下项目,像这样
这里写图片描述

手改或者Configure调整都可以

此时 tools的转换按钮就可以使用了,java和kotlin代码可以无缝转换

这里写图片描述

此时你已经可以跑了,不信你试试!!


拓展

依赖注入相关也可以完美演绎,拓展插件如下

apply plugin: 'kotlin-android-extensions'

倒包的时候

import kotlinx.android.synthetic.main.<布局>.*

像这样

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

简单的写一个触摸事件

package demo.wjj.com.kotlinandroiddemo

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Log.d("--->", "MainActivity onCreate")
        setContentView(R.layout.activity_main)
        button.text = "我是被改之后的按钮"
        button.setOnClickListener { Toast.makeText(this,"MainActivity setOnClickListener",Toast.LENGTH_SHORT).show() }
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d("--->", "MainActivity onDestroy")
    }
}
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="demo.wjj.com.kotlinandroiddemo.MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="这是一个按钮" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

这里写图片描述

使用非常简单,给我的感觉更像Js(个人看法,不够深入,继续学习)

Kotlin调用Java类

首先,我们建一个简单的Java类

public class People {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public People(String s) {
        name = s;
    }
}

刚才的业务代码里做一些修改

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Log.d("--->", "MainActivity onCreate")
        setContentView(R.layout.activity_main)
        button.text = "我是被改之后的按钮"
        button.setOnClickListener { Toast.makeText(this, "MainActivity setOnClickListener", Toast.LENGTH_SHORT).show() }

        printObj.setOnClickListener {
            val people = People("WangJJ")
            Toast.makeText(this, people.name, Toast.LENGTH_SHORT).show()
        }
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d("--->", "MainActivity onDestroy")
    }

}

kotlin定义变量有几种姿势,像这样

val wjj:Int=1 // 立即赋值
val wjj1 = 2 // 自动推断出 `Int` 类型 
val wjj2: Int // 如果没有初始值类型不能省略 
wjj3 = 3 // 明确赋值

整体体验下来学习周期应该不会太长,语法也不算复杂,有基础的小伙伴可以轻易上手,我也会陆续跟进,之后写个Demo项目吧。

谢谢!

猜你喜欢

转载自blog.csdn.net/ddwhan0123/article/details/76850975