最近谷歌宣布 kotlin 成为 Android 开发的一级语言,这个消息让很多Android开发者头疼,虽然kotlin 称100% 兼容 Java,但是作为开发者还是不得不得不去熟悉kotlin的语法与语言结构,作为头疼的Android开发者之一,在学习过程中,参考了kotlin 的开发文档,对于使用 kotlin 开发Android 总结了以下几点在最初使用kotlin时会遇到的问题 :

     1. Android Studio中kotlin的环境配置

     2. anko 的集成与使用

     3. 简单介绍 listview的使用

    记录在此,为同样头疼的小伙伴 打个样,也为自己记录以下,方便查询,如有不对之处,请谅解并指出。

    正文:

   1. kotlin 在studio配置

   执行 Settings -> plugins -> BrowseRepositories中搜索“Kotlin” 

   注:若在plugins的搜索里找不到,点击plugins弹框的下方的 BrowseRepositories ,在弹框中搜索 kotlin,点击右侧 Install

  安装完成后,执行new操作,会有   “KotlinFile/Class”:一般Kotlin类     “Kotlin Activity”:Activity类


   2. 在Module中 配置

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

      compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
      compile 'org.jetbrains.anko:anko-sdk15:0.8.3'
      compile 'org.jetbrains.anko:anko-support-v4:0.8.3'
      compile 'org.jetbrains.anko:anko-appcompat-v7:0.8.3'

 3.在project中配置

     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
     classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" 

配置完成后,就不需要 使用findViewById 了,可以直接使用id找到控件。 使用anko也可以在代码中绘制布局,不需要 xml了,具体参考文档。


4.listview的 简单demo

package com.example.administrator.myyyyimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport android.widget.Toastimport org.jetbrains.anko.*class TestActivity : AppCompatActivity() {    val IDTY = 1    val dataA: ArrayList = ArrayList()    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        addData()    }    private fun addData() {        for (i in 0..10) {            dataA.add("这个是" + i)        }        val listview = listView();        var adapter = ListAdapter()        adapter.context = this        adapter.dataN = dataA        listview.adapter = adapter        listview.setOnItemClickListener { adapterView, view, i, l ->            Toast.makeText(this,dataA.get(i),Toast.LENGTH_SHORT).show()        }    }}

package com.example.administrator.myyyyimport android.content.Contextimport android.view.Viewimport android.view.ViewGroupimport android.widget.BaseAdapterimport android.widget.TextViewimport org.jetbrains.anko.find/** * Created by Administrator on 2017/6/5. */class ListAdapter : BaseAdapter() {    var context: Context? = null    var dataN: List? = null    override fun getItem(p0: Int): Any {        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.    }    override fun getItemId(p0: Int): Long {        return p0.toLong()    }    override fun getCount(): Int {        return dataN?.size ?: 0    }    override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View {        var holder: Holder        var view: View        if (p1 == null) {            view = View.inflate(context, R.layout.item, null)            holder = Holder()            holder.tx = view.find(R.id.sss)            view.tag = holder        } else {            view = p1            holder = view.tag as Holder        }        holder.tx?.text = "sssssssss"        return view    }    class Holder {        var tx: TextView ? = null    }}










更多相关文章

  1. Android中ExpandableListView的使用(一)
  2. Android(安卓)IPC机制(二):AIDL的基本使用方法
  3. 使用GCM服务(Google Cloud Messaging)实现Android消息推送
  4. 如何在Android(安卓)Studio使用Java8 Lambda表达式
  5. 在PC端进行android截屏的多种方法
  6. 使用Android(安卓)studio开发Android(安卓)App
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. Android实现透明的颜色效果
  2. 三十三、Android给ListView设置分割线Div
  3. Android 5.0 默认水波纹背景属性,可设置
  4. android在RelativeLayout里的TextView或
  5. 利用oom_adj提高Application所在进程的优
  6. 丰富多彩的Android onTouch事件
  7. linux下部署android模拟器
  8. Android:WebView与Javascript交互(相互调用
  9. Android(安卓)Studio 提示Error running
  10. android之grideView书架问题