关于kotlin的简单使用

来源:互联网 发布:战地1画面优化 编辑:程序博客网 时间:2024/06/05 14:10

前言我就不介绍了,想要了解的可以去看下官方文档下面是kotlin中文的文档:

https://www.gitbook.com/book/wangjiegulu/kotlin-for-android-developers-zh

我使用的Android studio2.3.2,需要下载kotlin插件,添加步骤:

在Android Studio中打开Settings,选择Plugins选项,输入kotlin,没有安装的会有提示,或者直接点击Browse Repositories,在打开的新窗口中搜索Kotlin,如下图所示。

 

我这是已经安装过得,如果未安装会出现install的按钮,点击安装,安装完成后重启Android studio即可。

重启后我们可以去尝试新建kotlin项目,这时候新建的时候就会多出了选项:

这里写图片描述

这时候就可以选择新建了,新建的时候会弹出对话框点击OK即可;接下来会进行了自动配置,等配置完成后build.gradle

会是这样的:

buildscript {    ext.kotlin_version = '1.1.2-4'    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.3.2'        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}allprojects {    repositories {        jcenter()        maven { url "https://jitpack.io" }    }}task clean(type: Delete) {    delete rootProject.buildDir}
其中红色标注为kotlin的自动配置,到这里已经算完成kotlin的配置了,接下来就是实践了,下面是我用的方式:

可以看下code最下方有Convert Java File to Kotlin File这一项,这个选项可以将java类转换成kotlin类,我首先做的就是找一个activity转换成kotlin形式的,用意就是看看转换后官方是怎么写的,这样更有利于学习,下面是转换后的代码:

class KotlinDemoActivity : AppCompatActivity(), View.OnClickListener {    private var textView: TextView? = null    private var img: ImageView? = null    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_kotiln_test)        initView()        setOnlick()        getObj(9)    }    private fun setOnlick() {        textView!!.setOnClickListener(this)        img!!.setOnClickListener(this)    }    private fun initView() {        textView = findViewById(R.id.text_view) as TextView        textView!!.text = cons.toString()        img = findViewById(R.id.imageView) as ImageView        img!!.setImageResource(R.mipmap.ic_launcher)    }    private val cons: Int        get() {            val a = 10            val b = 12            val c = 1            return a + b * a - c / a        }    private fun getObj(obj: Any): String {        if (obj is String) {            return obj        }        return ""    }    override fun onClick(v: View) {        when (v.id) {            R.id.text_view -> Toast.makeText(this@KotlinDemoActivity, R.string.click_text, Toast.LENGTH_SHORT).show()            R.id.imageView -> {                Toast.makeText(this@KotlinDemoActivity, "img", Toast.LENGTH_SHORT).show()                val intent = Intent()                intent.setClass(this@KotlinDemoActivity, KotilnTest::class.java)                intent.putExtra("img", "ssss")                startActivity(intent)            }        }    }}
这是官方转换后的;

我们在网上查阅资料的时候也会遇到这种情况:不用调用什么findviewById的方式直接给组件赋值:

text_view.text = "ssssgggg"
其中text_view 是组件的ID,后面就相当于setText();但是有的同学整了好久就是调不出来text,其实这还需要在gradle中配置一段代码:

apply plugin: 'kotlin-android-extensions'
就这段,配上以后就能放弃findviewById的方法


原创粉丝点击