查看: 46|回复: 0

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

[复制链接]

1

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-7-22
发表于 2019-10-3 16:52:00 | 显示全部楼层 |阅读模式

之前一直使用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)
    }
}

跳转

val intent = Intent(this, SettingActivity::class.java)
startActivity(intent)

直接实现抽象类中接口方法

使用object来实现抽象类接口方法

val rvAdapter = object : RVAdapter<DownloadingItem>(lists) {

            override fun bindDataToView(holder: RVAdapter.RVViewHolder, position: Int, bean: DownloadingItem, isSelected: Boolean) {

            }

            override fun getItemLayoutID(position: Int, bean: DownloadingItem): Int {
                return 0
            }

            override fun onItemClick(position: Int, bean: DownloadingItem) {

            }
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部