关于kotlin的简单使用

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

发现了一个kotlin论坛,用户量还不多,但是应该是个精品网站,感兴趣的可以去看看:http://kotlinclub.com/

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的方法

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值