- Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性。
- Kotlin是使用Java开发者的思维被创建的,Intellij作为它主要的开发IDE。对于 Android开发者,有两个有趣的特点:
- 对Java开发者来说,Kotlin是非常直觉化的,并且非常容易学习。语言的大部 分内容都是与我们知道的非常相似,所以能迅速地掌 握它。
- AndroidStudio作为目前最流行的Android开发工具,能够非常完美地理解、编译运行Kotlin代码。
—第一步:环境搭建——-
开始的唠叨:
- 我用的Android版本是2.1.2,Gradle是gradle-2.12版本,目前Kotlin的最新版本是1.0.3。
可能是因为我Gradle版本较低的原因 ,在项目中尝试配置了多次Kotlin1.0.3版本都失败了,最终我使用的是kotlin1.0.2版本。
配置过程如下:
1,给AndroidStudio工具安装Kotlin插件:
直接安装上图中带红圈的Kotlin插件,重启AndroidStudio即可。网上说是也要安装图中第二个插件(Kotlin Extensinons For Android),
2,在项目中添加配置Kotlin代码:
2.1,在Project对应的build.gradle文件中添加如下代码:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.0.2' //kotlin版本
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" //kotlin依赖
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2.2,在module对应的build.gradle文件 中添加有Kotlin注释的代码:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android' //添加这行代码
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
sourceSets {
main.java.srcDirs += 'src/main/kotlin' // 注明Kotlin路径
}
defaultConfig {
applicationId "com.ldm.kotlin"
minSdkVersion 16
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" //直接使用build.gradle中的kotlin版本
compile 'com.android.support:recyclerview-v7:24.0.0'
}
rebuild下工程就可以了。
—-第二步:通过kotlin实现RecycleView显示列表数据——
1,MainActivity中代码
package com.ldm.kotlin
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
//Kotlin中创建类MainActivity,用“:”表示继承自AppCompatActivity
class MainActivity : AppCompatActivity() {
//定义一个集合变量,并赋值
private val items = listOf("Kotlin DEMO数据1",
"Kotlin DEMO数据21/8", "Kotlin DEMO数据17",
"Kotlin DEMO数据111", "Kotlin DEMO数据1",
"Kotlin DEMO数据1", "Kotlin DEMO数据17")
//实现onCreate()方法,关键字“fun”
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// findViewByid()的方式初始化RecyclerView
val recycle_view = findViewById(R.id.recycle_view) as RecyclerView;
//实例化LinearLayoutManager对象,LinearLayoutManager(this)创建了一个对象的实例
//对象实例化也是与Java中有些不同。如你所见,我们去掉了 new 关键 字。
recycle_view.layoutManager = LinearLayoutManager(this);
//初始化Adapter并设置数据
recycle_view.adapter = FirstKotlinAdapter(items);
}
}
2,RecyclerView对应数据适配器代码 :
package com.ldm.kotlin
import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import android.widget.TextView
//定义数据适配器,通过“:”继承自RecyclerView.Adapter
public class FirstKotlinAdapter(val items: List<String>) : RecyclerView.Adapter<FirstKotlinAdapter.ViewHolder>() {
//创建ViewHodler
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(TextView(parent.context))
}
//绑定ViewHolder并设置数据
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.textView.text = items[position]
}
//实现getItemCount,处理数据的条目数量
override fun getItemCount(): Int = items.size;
//定义ViewHolder,现在只需要一个 TextView
class ViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView);
}
目前是把适配器代码类和MainActivity类放在一下包下面的,否则会报错,当然可以不放在一个包中,像java一样可以导包的,后期会写相关笔记。
3,布局文件代码
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
第一个Kotlin项目ok啦。