源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Kotlin在Android工程中的应用详解

  • 时间:2021-12-26 09:12 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Kotlin在Android工程中的应用详解
[b]Kotlin在Android工程中的应用[/b] [url=http://code.tutsplus.com/tutorials/how-to-use-kotlin-in-your-android-projects--cms-24052]原文链接[/url] [b]简介[/b] [url=http://kotlinlang.org/]Kotlin[/url]是由[url=https://www.jetbrains.com/]JetBrains[/url]设计的开放源码的编程语言,它正在Java开发者中变得越来越流行。Kotlin通常被吹捧为Java的继承者,相比较Java而言,Kotlin提供更为丰富的开发经验,因为它更现代,更具表现力和更简介。 如果你在寻求Android开发的可替代编程语言,那么应该试一下Kotlin。使用Kotlin,你可以很容易的在Android工程中替代Java或者与Java混合使用。 本文接下来将介绍在Android Studio工程中如何使用Kotlin和Kotlin插件。 [b]前置条件[/b] 继续本文之前,你首先需要完成如下两件事情: 将你的Andoid Studio更新到最新版本理解Kotlin的基本语法 如果你不熟悉Kotlin编程语言的话,建议先阅读[url=http://kotlinlang.org/docs/reference/]Kotlin指南[/url]中的[url=http://kotlinlang.org/docs/reference/basic-syntax.html]开始[/url]章节。 [b]1. 安装Kotlin插件[/b] 在Android Studio的快速开始菜单中,选择Configure>Plugins: [img]http://files.jb51.net/file_images/article/201705/2017051915114826.png[/img] 在打开的页面中,点击底部的Install JetBrains plugin...: [img]http://files.jb51.net/file_images/article/201705/2017051915114927.png[/img] 在插件列表中选择或者搜索Kotlin Extensions For Android并点击右边窗口的Install Plugin按钮: [img]http://files.jb51.net/file_images/article/201705/2017051915114928.png[/img] 由于这个扩展插件依赖于Kotlin插件,因此会弹出一个对话框提示我们同时去下载它,点击Yes按钮开始插件的下载: [img]http://files.jb51.net/file_images/article/201705/2017051915115129.png[/img] 当下载安装完成之后,重启Android Studio就可以激活插件了。 [b]2. 创建Kotlin Activity[/b] 在Android Studio中,右键单击工程包名在弹出的菜单中选择New>Kotlin File: [img]http://files.jb51.net/file_images/article/201705/2017519151631191.jpg?2017419151647[/img] 在弹出的对话框中,输入Activity的名字并在类型下拉列表中选择Class。我们把名字命名为MainActivity: [img]http://files.jb51.net/file_images/article/201705/2017051915115231.png[/img] 当类被创建出来后,你将会看到一个警告,提示你配置app模块来支持Kotlin: [img]http://files.jb51.net/file_images/article/201705/2017051915115332.png[/img] 单击警告提示条的链接,在弹出的对话框中点击OK按钮选择默认的Kotlin插件版本即可: [img]http://files.jb51.net/file_images/article/201705/2017051915115533.png[/img] 为了配置你的工程支持Kotlin,Kotlin插件修改了build.gradle文件。点击Sync Now按钮就可以应用这些改动了: [img]http://files.jb51.net/file_images/article/201705/2017051915115634.png[/img] 到这里,工程的配置完成了。让我们回到刚才创建的Kotlin类来开始Kotlin的编程吧。 [b]3. 使用Kotlin[/b] 为了保持例子的简单,我们将展示如何创建一个Activity,它包含一个用于显示String字符串的TextView。 确保你的类继承自Activity,并重写其onCreate函数。当然,你要使用Kotlin的方式实现。如果你还不熟悉Kotlin,建议通过快捷键Control+O来激活Android Studio的代码生成功能,从而得到正确的函数签名: [img]http://files.jb51.net/file_images/article/201705/2017051915115735.png[/img] 生成之后,我们的类应该如下所示:
package com.hathy.kotlinsample

import android.app.Activity
import android.os.Bundle

public 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编译器稍微慢一点,但你可能察觉不到编译时间的显著变化。 [b]4. 使用Kotlin的Android扩展插件[/b] 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.kotlinsample

import android.app.Activity
import android.os.Bundle

public 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")
[b]5. 将Java类转换为Kotlin[/b] 我们可以使用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: [img]http://files.jb51.net/file_images/article/201705/2017051915115836.png[/img] 转换后的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。 [b]总结[/b] 本文我们通过在Android Studio中安装Kotlin插件和Kotlin Android扩展插件学到了如何在Android工程中使用Kotlin。由于Kotlin和Java在很大程度上可互操作,如果你还在学习Kotlin,那么最好是逐步在你的Android项目中应用它。 为了学习更多的Kotlin相关知识,我建议浏览[url=http://kotlinlang.org/docs/reference/]Kotlin指南[/url]。[url=http://kotlinlang.org/docs/reference/basic-syntax.html]开始[/url]章节将会帮助你尽快熟悉这门新语言。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部