Kotlin的初探

作者: 神山上人 | 来源:发表于2017-06-01 18:04 被阅读0次

    最近Google的I/O大会又火了了一把,不为别的,只为android开发语言,其实这门开发语言在2010年的时候就已经问世了,只是当时的技术也不是很成熟,google也没有重视它,导致到目前为止,google才开始挖掘这门语言.
    我认为这门语言在以后android开发中,会成为主流,原因之一是:受到了google开发人员的重视,二,我觉得最重要的是,版权问题,android使用java开发,始终不是自己的语言,最后难免会出现以前的jvm的问题.我想这大概也试google推崇这门语言的原因之一吧.
    下面我们一起来见识一下Kotlin语言吧.

    开发环境:

      Android Studio
    

    首先,目前studio版本不支持该语言,所以说必须先下载插件(但是在3.0版本,studio会直接支持),下载插件安装过程我就不详细说了.

    插件下载完成后,我们开始我们的开发之旅.

    新建android工程,和原先的没有什么区别,当然你也可以直接创建Kotlin工程,下载插件后,在创建activity的时候会出现这个界面
    
    Paste_Image.png

    箭头标识的是 一个是实体类,一个是activity.
    但是我不建议现在直接创建这种. 我建议下面这种方式,先创建以前一样的工程项目.当 你把东西创建完成后,可以直接转换.

    转换步骤: 1.将java代码转换成kotlin代码

         第一步,打开java代码文件
         第二步,Ctrl+shift+A
        第三步,在搜索框中输入Convert Java File to Kotlin File即可.Ctrl+shift+K
        第四步,配置 
    ![Paste_Image.png](https://img.haomeiwen.com/i3163051/632dfc6f147ea560.png?  imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    最后同步一下就ok了.
    基本语法:
    常量 val 代表用final修饰的
    变量 var
    静态 companion object 代表static
    其他的详见 官方文档
    http://www.mamicode.com/info-detail-1172799.html
    下面是我写的一个自己以前封装的带上拉加载和下拉刷新的listView的一个Demo

    部分代码如下:

       private fun initData() {
        if (allData.size <= 0) {
            for (i in 0..99) {
                allData.add("我是张三-----" + i)
            }
        }
        val adpter = MyAdpter(this, allData)
        listview!!.adapter = adpter
       // listview!!.onItemClickListener = this
        listview!!.setOnRefreshListener(object : RefreshListView.OnRefreshListener {
            override fun onPullDownRefresh() {
                try {
                    Handler().postDelayed(object : Runnable {
                         override fun run() 
                            allData.add(0, "我是下拉刷新出来的数据.. ")
                            adpter.notifyDataSetChanged()
                            listview!!.onRefreshFinish()
                        }
                    }, 3000)
                } catch (e: InterruptedException) {
                    e.printStackTrace()
                }
            }
            override fun onLoadingMore() {
                try {
                    Handler().postDelayed(object : Runnable {
                        override fun run() {
                            allData.add("我是加载更多的数据1")
                            allData.add("我是加载更多的数据2")
                            allData.add("我是加载更多的数据3")
                            listview!!.onRefreshFinish()
                        }
                    }, 5000)
                } catch (e: InterruptedException) {
                    e.printStackTrace()
                }
            }
        })
    }
    

    去掉了标点符号结尾. 该demo只是一个简易的展示.只是一个Kotlin的入门体验.
    最后推荐一个java转Kotlin 的网站
    https://try.kotlinlang.org/#/Examples/Hello,%20world!/A%20multi-language%20Hello/A%20multi-language%20Hello.kt
    源码地址:
    https://github.com/Simonhy/Kotlin
    其他的github上文章
    https://github.com/Simonhy

    相关文章

      网友评论

        本文标题:Kotlin的初探

        本文链接:https://www.haomeiwen.com/subject/hsvefxtx.html