Kotlin在Android工程中的应用详解

Kotlin在Android工程中的应用详解,第1张

概述Kotlin在Android工程中的应用原文链接简介Kotlin是由JetBrains设计的开放源码的编程语言,它正在Java开发者中变得越来越流行。Kotlin通常被吹捧为Java的继承者,相比较Java而言,Kotlin提供更为丰富的开发经验,因

Kotlin在AndroID工程中的应用

原文链接

简介

Kotlin是由JetBrains设计的开放源码的编程语言,它正在Java开发者中变得越来越流行。Kotlin通常被吹捧为Java的继承者,相比较Java而言,Kotlin提供更为丰富的开发经验,因为它更现代,更具表现力和更简介。

如果你在寻求AndroID开发的可替代编程语言,那么应该试一下Kotlin。使用Kotlin,你可以很容易的在AndroID工程中替代Java或者与Java混合使用。

本文接下来将介绍在AndroID Studio工程中如何使用Kotlin和Kotlin插件。

前置条件

继续本文之前,你首先需要完成如下两件事情:

将你的AndoID Studio更新到最新版本理解Kotlin的基本语法

如果你不熟悉Kotlin编程语言的话,建议先阅读Kotlin指南中的开始章节。

1. 安装Kotlin插件

在AndroID Studio的快速开始菜单中,选择Configure>Plugins:


在打开的页面中,点击底部的Install JetBrains plugin...:


在插件列表中选择或者搜索Kotlin Extensions For AndroID并点击右边窗口的Install Plugin按钮:


由于这个扩展插件依赖于Kotlin插件,因此会d出一个对话框提示我们同时去下载它,点击Yes按钮开始插件的下载:


当下载安装完成之后,重启AndroID Studio就可以激活插件了。

2. 创建Kotlin Activity

在AndroID Studio中,右键单击工程包名在d出的菜单中选择New>Kotlin file:


在d出的对话框中,输入Activity的名字并在类型下拉列表中选择Class。我们把名字命名为MainActivity:


当类被创建出来后,你将会看到一个警告,提示你配置app模块来支持Kotlin:


单击警告提示条的链接,在d出的对话框中点击OK按钮选择默认的Kotlin插件版本即可:


为了配置你的工程支持Kotlin,Kotlin插件修改了build.gradle文件。点击Sync Now按钮就可以应用这些改动了:


到这里,工程的配置完成了。让我们回到刚才创建的Kotlin类来开始Kotlin的编程吧。

3. 使用Kotlin

为了保持例子的简单,我们将展示如何创建一个Activity,它包含一个用于显示String字符串的TextVIEw。

确保你的类继承自Activity,并重写其onCreate函数。当然,你要使用Kotlin的方式实现。如果你还不熟悉Kotlin,建议通过快捷键Control+O来激活AndroID Studio的代码生成功能,从而得到正确的函数签名:


生成之后,我们的类应该如下所示:

package com.hathy.kotlinsampleimport androID.app.Activityimport androID.os.Bundlepublic class MainActivity: Activity() { overrIDe fun onCreate(savedInstanceState: Bundle?) {  super.onCreate(savedInstanceState) }}

使用val关键字创建TextVIEw的一个只读实例:

val myMessage = TextVIEw(this)

调用TextVIEw的setText函数设置要显示的字符串,接着调用setContentVIEw将TextVIEw设置给它:

myMessage.setText("Hello")setContentVIEw(myMessage)

就像在Java Activity中,你也需要在AndroIDManifest.xml文件中声明Kotlin Activity,以便让AndroID系统识别到它。假如这是你工程中唯一的Activity,那么manifest文件看起来如下所示:

<activity androID:name=".MainActivity"> <intent-filter>  <action androID:name="androID.intent.action.MAIN"/>  <category androID:name="androID.intent.category.LAUNCHER"/> </intent-filter></activity>

现在你可以在你的AndroID设备或者模拟器上运行这个app了。虽然Kotlin编译器比Java编译器稍微慢一点,但你可能察觉不到编译时间的显著变化。

4. 使用Kotlin的AndroID扩展插件

Kotlin的AndroID扩展插件使得开发者可以像对待Activity属性一样对待定义在Activity的XML布局文件中的组件。也就是说,如果使用这个插件,你将不再需要调用findVIEwByID。这些属性因此被称为合成属性(synthetic propertIEs)。

要在项目中使用这个特性,需要在app模块的build.gradle文件中加入org.jetbrains.kotlin:kotlin-android-extensions作为构建脚本依赖。不要忘了点击Sync Now按钮来同步这个改变到工程中:

buildscript { dependencIEs {  classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" }}

现在让我们创建一个和前面步骤创建的类似的Activity,但是使用布局XML文件来定义TextVIEw。创建一个布局XML文件并命名为another_activity.xml。在这个文件中,定义TextVIEw,ID为myMessage:

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"> <TextVIEw  androID:layout_wIDth="wrap_content"  androID:layout_height="wrap_content"  androID:textAppearance="?androID:attr/textAppearanceLarge"  androID:text="Large Text"  androID:ID="@+ID/myMessage" /></linearLayout>

新建另一个Kotlin类AnotherActivity,继承自Activity并重写onCreate函数,实现如下所示:

package com.hathy.kotlinsampleimport androID.app.Activityimport androID.os.Bundlepublic class AnotherActivity: Activity() { overrIDe fun onCreate(savedInstanceState: Bundle?) {  super.onCreate(savedInstanceState) }}

在onCreate函数中调用setContentVIEw并把刚才创建的布局XML文件设置给它:

setContentVIEw(R.layout.another_activity)

现在,你可以使用下面代码片段导入TextVIEw,而不是使用findVIEwByID的方式:

import kotlinx.androID.synthetic.another_activity.myMessage

如果布局文件中存在其他的组件,你可以使用如下语句来一次性全部导入:

import kotlinx.androID.synthetic.another_activity.*

现在你可以通过使用ID来访问TextVIEw,就像该TextVIEw是Activity类的一个属性一样。例如,修改TextVIEw显示的字符串:

myMessage.setText("Hello")

5. 将java类转换为Kotlin

我们可以使用Kotlin插件将现存的java类转换成Kotlin类。为了尝试这个特性,首先创建如下所示的java类,它是一个打印两个整数之和的简单的Activity:

public class YetAnotherActivity extends Activity { private int a,b; @OverrIDe protected voID onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  a=10;  b=20;  Log.d("MESSAGE","The sum is "+(a+b)); }}

使用快捷键Control+Alt+Shift+J,或者选择菜单Code>Convert Java file to Kotlin file:


转换后的Kotlin类如下所示:

public class YetAnotherActivity : Activity() { private var a: Int = 0 private var b: Int = 0 overrIDe fun onCreate(savedInstanceState: Bundle?) {  super.onCreate(savedInstanceState)  a = 10  b = 20  Log.d("MESSAGE","The sum is " + (a + b)) }}

除了文件内容改变之外,文件的扩展名也从.java变为了.kt。

总结

本文我们通过在AndroID Studio中安装Kotlin插件和Kotlin AndroID扩展插件学到了如何在AndroID工程中使用Kotlin。由于Kotlin和Java在很大程度上可互 *** 作,如果你还在学习Kotlin,那么最好是逐步在你的AndroID项目中应用它。

为了学习更多的Kotlin相关知识,我建议浏览Kotlin指南。开始章节将会帮助你尽快熟悉这门新语言。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Kotlin在Android工程中的应用详解全部内容,希望文章能够帮你解决Kotlin在Android工程中的应用详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存