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

Android开发——Kotlin开发APP使用笔记的更多相关文章

  1. Google Android Studio Kotlin 开发环境配置

    Google 近日开发者大会宣布Kotlin成为Android开发的第一级语言,即Android官方开发语言,可见Google对Kotlin的重视,本文就介绍一下Android Studio下的Kot ...

  2. [Android]使用Kotlin开发Android(二)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4829007.html [TOC] 使用Kotlin+OkHtt ...

  3. android开源新闻小程序、3D翻转公告效果、小说检索、Kotlin开发TODO清单等源码

    Android精选源码 开源新闻小程序源码分享 android动态壁纸.锁屏动画.来电秀等源码 android笔记App效果源码 Android实现3D版翻页公告效果 android小说搜索阅读源码 ...

  4. Google Android Studio Kotlin

    Google Android Studio Kotlin 开发环境配置 Google 近日开发者大会宣布Kotlin成为Android开发的第一级语言,即Android官方开发语言,可见Google对 ...

  5. 用Kotlin开发Android应用(II):创建新项目

    这是关于Kotlin的第二篇.各位高手发现问题,请继续“拍砖”. 原文标题:Kotlin for Android(II): Create a new project 原文链接:http://anton ...

  6. 用Kotlin开发Android应用(I):介绍

    关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Ko ...

  7. 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化

    第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...

  8. 使用Kotlin开发Android应用(I):简单介绍

    使用Kotlin开发Android应用(I):简单介绍 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 Kotlin是一门基于JVM的编程语言.它正成长为Androi ...

  9. 《android开发艺术探索》读书笔记(十四)--JNI和NDK编程

    接上篇<android开发艺术探索>读书笔记(十三)--综合技术 No1: Java JNI--Java Native Interface(java本地接口),它是为了方便java调用C. ...

随机推荐

  1. Redis设计原理

    1.简介 Redis中的每个Key-Value在内存中都会被划分成DictEntry.RedisObject以及具体对象,其中DictEntry又分别包含指向Key和Value的指针(以RedisOb ...

  2. 你真的了解MyBatis中${}和#{}的区别吗?

    动态sql是mybatis的主要特性之一.在mapper中定义的参数传到xml中之后,在查询之前mybatis会对其进行动态解析. mybatis提供了两种支持动态sql的语法:#{} 和 ${}. ...

  3. python控制窗口显示隐藏

    import win32con # 定义 import win32gui # 界面 import time # 时间 QQ= win32gui.FindWindow("TXGuiFounda ...

  4. lightoj 1111 - Best Picnic Ever(dfs or bfs)

    题目链接 http://www.lightoj.com/volume_showproblem.php?problem=1111 题意:给你一个有向图再给你几个人的位置,问所有人可以在哪些点相聚. 简单 ...

  5. 精品自用IDEA插件吐血推荐

    Alibaba Java Coding Guidelines 该插件集成了Alibaba代码编程规范,可以帮你找出你的代码怪味道 .gitignore 当你使用Git作为版本工具的时候,想要快速的添加 ...

  6. MYSQL学习系列

    1.myslq5.7安装以及root密码找回 2.mysql之innodb存储引擎介绍 3.mysql之innodb存储引擎---数据存储结构 4.mysql之innodb存储引擎---BTREE索引 ...

  7. 为什么你应该学习Go语言?

    终于等到你!Go语言--让你用写Python代码的开发效率编写C语言代码. 为什么互联网世界需要Go语言 世界上已经有太多太多的编程语言了,为什么又出来一个Go语言? 硬件限制:摩尔定律已然失效 摩尔 ...

  8. Mybatis系列(四)注解

    Mybatis系列(四)注解 1.pom.xlm: <?xml version="1.0" encoding="UTF-8"?> <proje ...

  9. C#委托(delegate、Action、Func、predicate)和事件

    一.前言 刚开始工作的时候,觉得委托和事件有些神秘,而当你理解他们之后,也觉得好像没有想象中的那么难.在项目中运用委托和事件,你会发现他非常棒,这篇博文算是自己对委托和事件的一次梳理和总结. 二.委托 ...

  10. Net基础篇_学习笔记_第十二天_面向对象继承(字符串_字符串的各种方法)

    我们可以讲字符串看做是char类型的一个只读数组.ToCharArray();将字符串转换为char数组new string(char[] chs):能够将char数组转换为字符串 1).Length ...