使用Kotlin开发Android应用
来源:互联网 发布:js中控件隐藏和显示 编辑:程序博客网 时间:2024/05/16 06:58
转载请标明出处:夏轩_xiaxuan
1.kotlin介绍
好久没有写博客了,前几天谷歌推出了一种新语言kotlin,简单来说,Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者。Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发。
相关网址
kotlin官网地址
2.执行 Settings -> plugins -> BrowseRepositories中搜索“Kotlin”
点击“Install JetBrains plugin”
2.1.其实新建kotlin和之前创建Activity方式是一样的,但是这里选择的是:
2.2当我们第一次创建一个Kotlin类后,会弹出一个Configure Kotlin的弹窗:
2.3点击as Kotlin module 点击ok即可
2.4,接下来我们看下在项目的跟build.gradle中配置:
buildscript { ext.kotlin_version = '1.1.2-4' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }}
2.5而在module的build.gradle中:
apply plugin: 'com.android.application'apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'apply plugin: 'com.android.application'android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { applicationId "yizong.mores.com.day03" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" compile 'org.jetbrains.anko:anko-sdk15:0.9' // sdk19, sdk21, sdk23 are also available compile 'org.jetbrains.anko:anko-support-v4:0.9' // In case you need support-v4 bindings compile 'org.jetbrains.anko:anko-appcompat-v7:0.9' // For appcompat-v7 bindings}repositories { mavenCentral()}
这里要注意的几个地方:
3.0现在我们来看下kotlin里面的写法:
然后可以直接使用变量tv进行操作了,非常方便,再也不用每个控件用findViewById查找一遍了(xml布局和之前写法一样)。
以下是完整的代码:
import android.content.Intentimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport kotlinx.android.synthetic.main.activity_main.*import kotlinx.android.synthetic.main.activity_main2.*class Main2Activity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main2) tv.text = "nihao" tv.textSize = 16f btn.textSize=16f //这里Button点击事件: btn.setOnClickListener({startActivity(Intent(Main2Activity@ this, MainActivity::class.java)) }) }}
看下xml 布局也很简单:
3.1下面我们看下另一个跳转类:
import android.support.v7.app.AppCompatActivityimport android.os.Bundleimport kotlinx.android.synthetic.main.activity_main.*import org.jetbrains.anko.custom.asyncimport org.jetbrains.anko.onClickimport org.jetbrains.anko.toastimport org.jetbrains.anko.uiThreadimport java.net.URLclass MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) tvmess.text="网络请求" tvmess.textSize=18f tvmess.onClick { toast("好牛逼的toast") async() { val result=URL("https://www.baidu.com/").readText() uiThread { //这里直接写主线程更新 tvmess.text=result } } } }}
最终运行如图所示:
小结:
Android Studio中还有一个关于Kotlin很实用的操作,就是将Java源代码转化为Kotlin代码:
执行code–> Convert Java File to Kotlin File
由于篇幅所限,Kotlin 还有诸多特性(类扩展,函数运用,DSL 等)并未介绍,请期待后续分享。
阅读全文
1 0
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用
- 使用Kotlin优雅的开发Android应用
- 使用Kotlin开发Android应用初体验
- 使用Kotlin优雅的开发Android应用
- 使用Kotlin开发Android应用初体验
- 使用Kotlin开发Android应用初体验
- 使用Kotlin开发Android
- 使用Kotlin开发Android
- 使用kotlin开发android
- 使用 Kotlin 开发 Android 应用 | 8 个最优秀的 Android Studio 插件 Kotlin Android 素材
- 初探Kotlin开发android应用
- 使用kotlin开发springboot应用
- 使用Kotlin开发Android应用(I):简介
- Codeforces Round #415 (Div. 2) A. Straight «A»
- ArrayList分析
- GCC的使用
- java插入排序
- linux下fopen基本函数
- 使用Kotlin开发Android应用
- 实训之WSN(二)
- Gephi简介
- SVM中引入拉格朗日对偶理解
- 离散题目15
- 台湾大学林轩田机器学习基石课程学习笔记12 -- Nonlinear Transformation
- IPC 消息队列(message queue)
- AB HDU 1576
- linux多线程互斥锁的简单使用