Android Studio 3.0 原生支持kotlin 例子详解

作者:爱学习的坏蛋 时间:2023-10-30 04:28:14 

安卓虽然已经成为了移动设备第一操作系统,且影响力也延伸到了汽车和tv端,不过对于谷歌来说,需要依靠Java来做安卓开发一直是一个心病,因为Oracle公司因为java和谷歌在安卓系统上的诉讼搞得心力憔悴。

现在好了,谷歌官方正式支持Kotlin(官方网站 https://kotlinlang.org/,居然没被墙)成为官方认可的安卓开发第一语言,而且从Android Studio 3.0开始,将直接集成Kotlin而无需安装任何的插件。这个语言是由JetBrains去年发明的,它受到欢迎,主要是因为它运行在Java虚拟机上,可以和java一起使用来构建应用程序。 这意味着开发人员可以使用现有的代码,轻松地构建新的功能或替代Java代码。 由于Kotlin依赖于Java,所以这两种语言都将继续得到支持。

谷歌将致力于推动Kotlin相关安卓开发工具的发展,使得使用Kotlin来开发安卓应用更加高效。当然生态系统不是一天就可以创建好的,Kotlin何时可以取代Java成为安卓开发第一语言还需要时日。

开干吧

假设你已经下载好了android studio 3.0

1.创建项目,必须要选中include Kotlin 不然就还是默认java开发

Android Studio 3.0 原生支持kotlin 例子详解

2.下一步, 下一步 然后就完成了(第一次会很长的时间, 因为那些库基本上都在国外,你懂的)

Android Studio 3.0 原生支持kotlin 例子详解


val fab = findViewById(R.id.fab) as FloatingActionButton

这里的”findViewById”可以省略, 我们再添加一个, 在app/build.gradle里面


apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

然后代码就可以写成


fab.setOnClickListener { view->
     Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show()
   }

有没有惊喜? 其实呢, kotlin我最喜欢的还是它的扩展特性, 这样就可以省略了很多工具类. 比如我们给View添加一个扩展方法.
新建一个kotlin文件:ViewEx, 添加上扩展函数

Android Studio 3.0 原生支持kotlin 例子详解 

测试一下:


override fun onCreate(savedInstanceState: Bundle?) {
   super.onCreate(savedInstanceState)
   setContentView(R.layout.activity_main)
   val toolbar = findViewById(R.id.toolbar) as Toolbar
   setSupportActionBar(toolbar)

fab.setOnClickListener { view->
     Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show()

view.log("测试扩展函数")
     println("扩展属性值:${view.type}")
   }
 }

打印出结果:

Android Studio 3.0 原生支持kotlin 例子详解

是不是很方便? 不用单独去写什么工具类了.

来源:http://blog.csdn.net/qq634416025/article/details/72475604

标签:kotlin,android
0
投稿

猜你喜欢

  • Java使用EasyExcel动态添加自增序号列

    2023-11-17 01:54:37
  • Android实现简单点赞动画

    2021-05-25 11:12:20
  • Java利用钉钉机器人实现发送群消息

    2021-06-28 23:37:33
  • spring解决循环依赖的方案示例

    2021-11-19 03:31:04
  • Java 栈和队列的相互转换详解

    2021-09-22 05:00:12
  • Jetpack Compose 的新型架构 MVI使用详解

    2023-01-24 14:53:26
  • C++编程中用put输出单个字符和cin输入流的用法

    2023-05-28 06:14:49
  • c#扩展datatable转json示例

    2022-08-19 10:44:55
  • MyBatis-Plus联表查询(Mybatis-Plus-Join)的功能实现

    2023-11-25 03:24:33
  • Java实现简单台球游戏

    2022-06-28 23:55:59
  • C#的内存回收代码

    2023-06-20 06:38:47
  • Spring中的bean概念介绍

    2023-01-18 07:46:49
  • Android canvas drawBitmap方法详解及实例

    2021-06-12 12:17:18
  • javaSE基础如何通俗的理解javaBean是什么

    2023-09-20 00:34:13
  • android从资源文件中读取文件流并显示的方法

    2022-05-29 14:11:56
  • JavaWeb实现简单文件上传功能

    2022-11-19 04:15:41
  • Java解析json报文实例解析

    2023-07-18 21:33:58
  • java接口返回参数按照请求参数进行排序方式

    2023-02-19 07:30:05
  • Java遗传算法之冲出迷宫

    2022-01-12 21:34:58
  • Android使用CrashHandler来获取应用的crash信息的方法

    2023-07-25 20:27:38
  • asp之家 软件编程 m.aspxhome.com