设为首页 加入收藏

TOP

Kotlin入门(2)让App开发变得更容易(一)
2017-10-11 17:59:00 】 浏览:481
Tags:Kotlin 入门 App 开发 变得 容易

上一篇文章介绍了如何搭建Kotlin的开发环境,可是这个开发环境依然基于Android Studio,而在Android Studio上使用Java进行编码,本来就是理所应当的,何必还要专门弄个Kotlin,这个Kotlin相比Java到底有哪些好处呢?

我们可以把Kotlin看作是Java的升级版,它不但完全兼容Java,而且极大精简了代码语法,从而使开发者专注于业务逻辑的编码,无需在繁琐的代码框架之间周旋。当然,若想充分运用Kotlin的优异特性,除了导入Kotlin的核心库,还得导入Kotlin的扩展库与Anko库。具体到编译配置文件,则要进行以下两处修改:
1、打开项目的build.gradle,补充添加anko的版本号声明,以及Kotlin扩展库的路径,完整的编译配置如下所示:

buildscript {
    ext.kotlin_version = "1.1.2"
    ext.anko_version = "0.9"
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }
}

2、打开模块的build.gradle,在文件开头补充添加Kotlin的扩展插件,配置添加如下:

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

接着在dependencies节点下补充添加anko插件的编译说明,如下所示:

    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile "org.jetbrains.anko:anko-common:$anko_version"

编译配置修改完毕,接下来我们尝试进行简单的Kotlin编码,看看Kotlin的代码究竟有多么的简练。

 

首先在之前的hello模块包名上右击,依次选择弹出菜单“New”——“Kotlin Activity”(也可直接依次选择顶部菜单“File”——“New”——“Kotlin Activity”),右键菜单的截图如下所示:

选择菜单后打开Kotlin的Activity创建页面,单击“Next”按钮进入创建信息的填写页面,如下图所示:

这里填上Activity的名称EasyActivity,对应的布局文件名则为activity_easy,最后单击“Finish”按钮完成EasyActivity.kt的创建。

现在给前面创建的布局文件activity_easy.xml添加几个TextView和Button控件,布局比较简单就不贴了。因为本文主要介绍Kotlin开发,不再对Adnroid的Java开发做详细介绍,所以读者如果对Android开发还不熟悉的话,建议先根据《Android Studio开发实战:从零基础到App上线》一书学习基本的Android开发。

 

接下来是本文的重点,以前我们操纵控件之时,都要先通过findViewById方法获得控件对象,然后再调用相关函数设置对象属性。比如现在有个名为tv_hello的TextView控件,准备在代码中把tv_hello的显示文本改为“你好呀”,这用Java编码的话即是下面两行代码:

    TextView tv_hello = (TextView) findViewById(R.id.tv_hello);
    tv_hello.setText("你好呀");

修改文本这个功能,如果用Kotlin实现会是怎么样呢?下面就让我们实验一下。首先在EasyActivity.kt代码开头补充下面一行:

import kotlinx.android.synthetic.main.activity_easy.*

这行导入语句的目的是引进Kotlin的控件变量自动映射功能,接下来的代码就无需再调用findViewById方法,直接把控件ID当作控件对象使用即可。比如修改TextView的显示文本,采用Kotlin编码只要下面一行:

    tv_hello.setText("你好呀")

如此一来,原来的两行代码精简到一行代码,去掉了原先获取控件对象的冗余代码。然而Kotlin的便利性并不仅仅限于此,它对控件甚至都无需调用set***/get***方法,而允许直接修改/获取控件的属性值,像设置文本这个功能,可以继续简化为下面这行代码:

    tv_hello.text = "你好呀"

进一步简化之后,原代码的“set”与两个括号都被去除,但是新代码反而更容易理解了。

 

也许有人说,Kotlin在这里只精简了一行代码,不见得比Java有多大优势,那就继续进行其它常见功能的PK,有道是五局三胜,赢得多才足以服众。上面的第一局为修改控件文本的PK,结果是Kotlin小胜;接下来依次再设四局PK,其中第二局为点击监听器的处理。Button是Android的常用按钮控件,代码中经常要处理Button控件的点击事件,下面的Java代码就是响应Button点击的一个例子:

    final Button btn_click = (Button) findViewById(R.id.btn_click);
    btn_click.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            btn_click.setText("您点了一下下");
        }
    });

其实这个响应功能很简单,仅仅在点击按钮之时修改按钮文本而已,可是因为Java需要实现点击监听器,所以无奈还得写好几行的匿名类代码。如果使用Kotlin实现相同的功能,又是怎样的呢?且看下面的Kotlin代码:

    btn_click.setOnClickListener { btn_click.text="您点了一下下" }

不得了了,Kotlin只需一行代码就完事,想不到吧,此局Kotlin完胜。

 

第三局换个Button控件的长按事件,下面的Java代码是响应Button长按的一个例子:

    final Button btn_click_long = (Button) findViewById(R.id.btn_click_long);
    btn_click_long.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇同时集成百度地图、定位以及导航.. 下一篇常用表单 组件封装

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目