000 初步使用Kotlin开发Android应用

Kotlin是Jetbrians公司开发的一款编程语言,基于jvm兼容Java。

要求

IDE:IDEA或者Android Studio(简称studio)
对Kotlin语言有所了解,官方文档:https://kotlinlang.org/docs/reference/

在studio中安装kotlin插件:


Kotlin插件

创建一个Kotlin类的Activity


创建Kotlin类

在弹出对话框中选择创建类:


MainActivity.kt

一旦该类创建好之后会在编辑区的右上角出现警告提示:


Kotlin支持警告


点击警告中的蓝色字体会出现以下对话框:


在工程中配置Kotlin

两个单选,让你选择为整个项目中所有的module使用kotlin还是只有一个特定的module使用Kotlin。“Choose Kotlin plugin version”选择Kotlin的版本。配置好之后点击“OK”按钮。在编辑区右上角出现一下提示:


配置完成之后的提示

此时支持Kotlin的module中build.gradle已经备选修改,如下提示:


build.gradle被修改

此时点击Sync Now同步build.gradle
到此为止MainActivity创建成功,但是它还不是一个Activity子类,需要继承
Activity。

使用Kotlin创建Activity类

已经创建好的ManiActivity:

class MainActivity {
}

此时ManiActivity还不是一个Activity,添加如下代码使之成为一个Activity

import android.app.Activity
class MainActivity: Activity() { }

习惯使用Java的猿类可能会感到奇怪,“:”号在Kotlin语法中表示继承,为什么要继承Activity()而不是Activity,这与Kotlin语法有关。
覆写OnCreate方法,并且创建一个TextView用于显示文本。

import android.app.Activity
import android.os.Bundle
import android.widget.TextViewclass MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val textView = TextView(this) textView.text = "Hello Kotlin" setContentView(textView) } }

Kotlin比Java更简洁此处可以看到

使用kotlin-android-extensions插件

作用:使用kotlin-android-extensions插件可以让你不使用findViewById方法也能使用组件。
创建一个ExtensionsActivity,并创建一个extensions_activity布局文件,布局文件中包含一个TextView,代码如下:
ExtensionsActivity:

import android.app.Activity
import android.os.Bundleclass ExtensionsActivity: Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } }

extensions_activity:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" /> </RelativeLayout>

修改Build.gradle中文件:添加kotlin-android-extensions插件

buildscript {ext.kotlin_version = '1.0.0-beta-4584'repositories {mavenCentral()}dependencies {classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } }

classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"说明使用kotlin-android-extensions插件

修改ExtensionsActivity代码,获取TextView组件并使用,代码会简单的多。

import android.app.Activity
import android.os.Bundle
import kotlinx.android.synthetic.activity_extensions.text;class ExtensionsActivity: Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_extensions); text.text = "Dota" } }

说明:
import kotlinx.android.synthetic.activity_extensions.text
意思是引入activity_extensions布局中id为text的组件。
若要引入activity_extensions布局中的所有组件写法为:
import kotlinx.android.synthetic.activity_extensions.*;

将Java代码转换为Kotlin代码

创建名为JavaToKotlinActivity的Activity:

public class JavaToKotlinActivity extends AppCompatActivity { private int a, b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_java_to_kotlin); a = 10; b = 20; Log.i("bail", "sum of a + b = " + (a + b)); } }

将Java代码传唤为Kotlin代码指引


代码转换工具


使用代码转换工具,并且有快捷键提示,每个平台的快捷键有可能不同。
转换后的代码:

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Logclass JavaToKotlinActivity : AppCompatActivity() { private var a: Int = 0 private var b: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_java_to_kotlin) a = 10 b = 20 Log.i("bail", "sum of a + b = " + (a + b)) } }

总结

在这篇文章中你已经初步学会在Android Studio中安装Kotlin插件,并在
Android项目中使用Kotlin,Kotlin插件和Kotlin Android Extensions插件。由于Kotlin与Java有极大的交互性,如果继续坚持学习Kotlin,建议在Android项目学习。

参考文章:http://code.tutsplus.com/tutorials/how-to-use-kotlin-in-your-android-projects--cms-24052

转载于:https://www.cnblogs.com/simadi/p/6688440.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-18617.html

如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网进行投诉反馈,一经查实,立即删除!


相关文章:

  • bzoj 3208 花神的秒题计划I
  • 使用VSCode如何调试C#控制台程序_2_加深总结
  • delphi 连接DBF
  • CentOS下配置apache+gitweb
  • 你变了
  • Testng 的数据源 驱动測试 代码与配置
  • Win7如何自定义鼠标右键菜单 添加新建文本文档
  • 二维光子晶体带隙仿真Matlab完全程序_平面波展开法
  • Spring AOP动态代理原理与实现方式
  • 面向对象oop继承
  • ZOJ 2859 二维RMQ(模板)
  • 2016-2017-2 20155309 南皓芯《java程序设计》第八周学习总结
  • Feed back TFS 2017 RC upgrade status to product team in product group 2017.03.01
  • DNS被污染后
  • 使用GDB进行调试 -- 1 应用场景
  • 新概念英语(1-29)Come in, Amy.
  • 广搜和深搜的区别
  • Opengl_19_assimp_1
  • FIS3操作流程
  • ecplise里的run as里只有run configurations是怎么回事?
  • Zookeeper(一) zookeeper基础使用
  • 第九讲:策略模式
  • 汽车智力游戏-汽车游戏大全
  • 10.Hello World 的 Java 项目创建和项目配置文件讲解
  • laravel项目拉下来之后,项目整个的启动
  • RecyclerView混合布局
  • codevs 1946 阿狸的打字机
  • 控制台重启
  • python笔记之中缀语法和管道实现
  • wrapper x64 版本发布到centos
  • Python远程连接Windows,并调用Windows命令(类似于paramiko)
  • 您所下载的内容含有
  • 前端学HTTP之网络基础
  • C++ Primer Plus 6 第一章
  • 简易高重用的jdbcutils工具封装实现类以及简易连接池实现
  • setattr()
  • POJ 3168 Barn Expansion (几何+排序)
  • 程序阅读:简单C++学生信息管理系统
  • vim中编辑了代码 但是提示can not write的解决办法和代码对齐办法
  • [工具]PyCharm激活、注册码无效解决办法
  • MSP430G2553电子时钟实验
  • 使用MapReduce将HDFS数据导入到HBase(三)
  • 第十周进度条
  • NYOJ - 整数划分(四)
  • shell脚本命令行参数里的空白符
  • sql处理null值
  • 《程序员修炼之道》笔记(五)
  • poj 3104 Drying (二分)
  • Android实现组件之间同步的回调通信
  • SharePoint 2013 同步FBA认证用户