当前位置: 萬仟网 > IT编程>移动开发>Android > Android开发——Kotlin开发APP使用笔记

Android开发——Kotlin开发APP使用笔记

2019年10月03日 17:14  | 萬仟网IT编程  | 我要评论

之前一直使用java来开发android项目,学了新的kotlin语言,前来试一试,并说一下kotlin对android的一些功能增强

创建项目

我使用的是android studio3.0+,所以默认就支持kotlin

创建项目的时候记得勾选kotlin支持

找到实例与设置监听器

以往我们是通过findviewbyid来找到实例,而kotlin中提供了一种更为快捷的方式,只需要一行代码,之后我们就可以直接使用布局里面的定义的各种实例了

像平常一样,我们可以使用实例来更改控件的内容,同时,这个按钮也可以作为监听器的判断。

以往我们的点击监听器,使用switch或者if语句来判断点击的控件,从而执行不同的操作。而kotlin中,直接使用实例判断,具体的代码在下面的mainactivity.java中

switch(v.getid){
    case r.id.btn:
        //逻辑操作
        break;
}
if(v.getid == r.id.btn){
    //逻辑操作
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.constraintlayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.wan.noveldownloader.activity.mainactivity">

<button
    android:id="@+id/btn_test"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="测试"  />
</android.support.constraint.constraintlayout>

mainactivity.java

package com.wan.noveldownloader.activity

import android.os.bundle
import android.view.view
import com.wan.noveldownloader.r
import kotlinx.android.synthetic.main.activity_main.*

class mainactivity : baseactivity(),view.onclicklistener {
    override fun onclick(v: view?) {
        when (v) {
            //操作
            btn_test -> showtoast("htllo")
        }
    }

    override fun oncreate(savedinstancestate: bundle?) {
        super.oncreate(savedinstancestate)
        setcontentview(r.layout.activity_main)
        //这里的btn_test就是布局文件的按钮实例
        //输入btn_test会自动增加一行import kotlinx.android.synthetic.main.activity_main.*
        btn_test.setonclicklistener(this)
    }
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com