Kotlin从诞生到现在,其影响和成熟性都在不断的变大,变好,而作为Android开发者的我,也对这门语言越来越好奇,此前都只是从众多的文章中来接触这个可能今后与我们Android开发接触最亲密的“小伙伴”,今天终于能够为我和Kotlin之间的关系踏进重要的一步,开始第一次动手来实践了,接下来让我们来看看如何接触这个“小伙伴”。
第一:Android Studio安装Kotlin
在AS 3.0及以后的版本是自带Kotlin plugin的,因此在3.0之后的版本中使用Kotlin很简单,只需要在新建项目的时候勾选中Kotlin的选项即可创建一个Kotlin项目:具体见下图:
但是如果你想在3.0之前的AS上使用Kotlin,则需要手动安装插件。点击File->settings->plugins->Install JetBrains Plugin...->输入搜索关键词“kotlin”->选择"Kotlin" 并Install,重启AS,就可以创建项目啦。创建完成后还有后续的操作步骤:将java代码转换成Kotlin|——打开MainActivity.java,用快捷键ctrl+shift+A打开action面板,然后输入convert java File to kotlin,点击联想出来的action列表,就会将java的MainActivity转换成了kotlin版本的了。这个时候如果你开始去编辑MainActivity时,AS将提示kotlin还没有配置,这时我们可以点击configure选择Android with Gradle。或者也可以点击Tools->Kotlin->Configure Kotlin in Project。在弹出框中选择All modules containing Kotlin files,然后点击OK,完成配置。配置完毕后,根目录下的build.gradle也会更新(将自动添加kotlin插件以及kotlin的版本号),接下来我们就可以运行一下这个工程了。
下面是写的一个小小的例子
基本语法:
package com.desjf.dsjr.kotinfirst
import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.Button
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
//变量定义 显示指出变量类型
private var a: Int =10000
//变量定义 显示指出变量类型 ?代表当前变量可以为空
private var word:String?=""
//变量定义 默认为int型
private var b=1
//常量定义
private val NAME="YinL"
//声明控件方式
private var btn2 : Button?=null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//调用求和函数
sum(a,b)
//给id为tv的TextView设置值
tv.text=""+sum(a,b)
tv2.text=word
//赋值
word="代码简洁了"
//获取输入框中输入的值
var value=et.text.toString().trim()
//按钮点击事件
btn1.setOnClickListener{
//实现界面跳转方式一
val intent1 = Intent(this,Main2Activity::class.java)//反射
startActivity(intent1)
}
btn2?.setOnClickListener{
//实现界面跳转方式二
val intent2 = Intent()
//获取intent对象
intent2.setClass(this,Main3Activity::class.java)
// 获取class是使用::反射
startActivity(intent2)
}
//获取EditText输入的值
}
//两个数求和 传参为两个整形变量,返回值类型为Int
fun sum(a:Int,b:Int):Int {
return a + b
}
}
界面之间通过Intent传递数据方法:
传值:
val intent2 = Intent()
//获取intent对象
intent2.setClass(this,Main3Activity::class.java)
var bundle = Bundle()
bundle.putString("key",value)
intent2.putExtras(bundle)
// 获取class是使用::反射
startActivity(intent2)
取值:
var bundle =this.intent.extras
var v= bundle.get("key").toString()