创建Project
和以往创建工程无差别,略
插件
apply plugin: 'kotlin-android'
//这个插件将布局中的控件,直接用id即可在kt中使用,省去写findViewById,本示例没添加
apply plugin: 'kotlin-android-extensions'
kotlin安装教程csdn一大堆,如果下载失败,可以考虑下载到本地再安装插件
plugin 下载地址
添加依赖包
- 工程 build.gradle
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- module build.gradle
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
如有需要可增加 anko依赖,直接在kt中写布局,本示例未使用
compile "org.jetbrains.anko:anko:$anko_version"
github anko官方示例
PS: 如果遇到构建工程半天的都下载不来jar包,可以把build.gradle中的jcenter/maven/mavenCentral下载地址替换为国内镜像地址,如开源中国(http://maven.oschina.net/content/groups/public/)或阿里云镜像,以阿里云举例
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
新建kt文件
如上图,新建 Kotlin File/Class 或者 Kotlin Activity 都可以,差别是Kotlin Activity构建类结构并继承Activity类,若创建Activity记得在xml中注册。
功能
- 界面
- 在主页中显示一个列表,kotlin+listview
- 二级页面用 java 写简单页面
- 三级页面用 kotlin 简单页面
目的
kotlin 调用 java 写的activity
startActivity(Intent(this@MainActivity, JavaActivity::class.java))
java 调用 kotlin 写的activity,和java调用无差别
startActivity(new Intent(this,TestActivity.class));
部分代码
{ ···
var button = findViewById(R.id.button) as Button
button.setOnClickListener { view ->
startActivity(Intent(this@MainActivity, JavaActivity::class.java))
}
var listView = findViewById(R.id.listView) as ListView
var data: ArrayList<String> = ArrayList()
for (i in 0..20) {
data.add("测试示例:" + i)
}
var adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, data)
listView.adapter = adapter
}