下面就为大家介绍怎么使用Kotlin来开发Android
上面这篇中我们在下载Kotlin插件的时候也下了一个功能扩张插件,其实这个插件大有用处,它可以使得我们在不使用注解和第三方库的情况下不使用findViewById来实例化控件,我们只需要导入对应的布局然后直接使用id来使用这个View就可以了。

扩展功能插件的使用

要使用这个功能:
1、首先需要导入这个插件的依赖,在Module的gradle中:

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


2、建立一个layout布局,并给View定义一个id:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:orientation="vertical"    tools:context=".MainActivity">    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:gravity="center"        android:layout_height="56dp"        android:textSize="16sp"/>LinearLayout>

3、导入布局,直接使用id来使用这个View:
在Activity中需要这样导入对应的layout

import kotlinx.android.synthetic.activity_main.*

然后就可以直接使用id来使用这个View了

textView.setText("Hello Kotlin")

Kotlin开发Andorid程序示例

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:orientation="vertical"    tools:context=".MainActivity">    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:gravity="center"        android:layout_height="56dp"        android:textSize="16sp"/>    <android.support.v7.widget.RecyclerView        android:id="@+id/recyclerView"        android:layout_width="match_parent"        android:layout_height="match_parent" />LinearLayout>

MainActivity.kt

import android.os.Bundleimport android.support.v7.app.AppCompatActivityimport android.support.v7.widget.LinearLayoutManagerimport android.support.v7.widget.RecyclerViewimport kotlinx.android.synthetic.activity_main.*import java.util.*public class MainActivity : AppCompatActivity() {    private var mRecyclerView: RecyclerView? = null    private var datas: MutableList? = null    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        getData()        textView.setText("Hello Kotlin")        mRecyclerView = findViewById(R.id.recyclerView) as RecyclerView        mRecyclerView!!.setHasFixedSize(true)        mRecyclerView!!.setLayoutManager(LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false))        var adapter:RecyclerAdapter = RecyclerAdapter(datas)        mRecyclerView!!.setAdapter(adapter)    }    public fun getData():Unit{        datas = ArrayList()        for(i in 1..100){            datas!!.add(i.toString())        }    }}

RecyclerAdapter.kt

public class RecyclerAdapter(val datas: MutableList?) : RecyclerView.Adapter() {    override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerViewHolder {        val view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_item, viewGroup, false)        val holder = RecyclerViewHolder(view)        return holder    }    override fun onBindViewHolder(recyclerViewHolder: RecyclerViewHolder, i: Int) {        recyclerViewHolder.mTextView.setText(datas!!.get(i))    }    override fun getItemCount(): Int {        return datas!!.size()    }    public class RecyclerViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {        public var mTextView: TextView        init {            mTextView = itemView.findViewById(R.id.textView) as TextView        }    }}

运行效果:

更多相关文章

  1. android使用Vitamio实现视频播放大小屏流畅切换
  2. android launcher 视频插件滚动bug
  3. android_项目_知识积累_mina通信(android手机登录功能)
  4. YouTube向美国所有Android用户推送画中画功能
  5. Android(安卓)分享功能,过滤掉不需要的组件,解决出现“Android系统
  6. Kotlin For Android简介——有趣实用的功能
  7. 基于mina的的android即时通信app
  8. Android多功能时钟开发案例(实战篇)
  9. android 如何动态的加载类----app插件技术

随机推荐

  1. Unknown host ‘XXXX: nodename nor serv
  2. 深入浅出 - Android系统移植与平台开发(五
  3. Android生命周期中几个重要的函数
  4. Android Camera数据流分析全程记录
  5. 【转载】微信Android 视频编码爬过的那些
  6. android 内存和性能优化汇总
  7. android 中fragment和activity的区别?
  8. android使用finish()和System.exit()退出
  9. Github android客户端源代码分析之一:环境
  10. Android日记 获取SharedPreferences三种