kotlin初窥之Kotlin Android Extensions
2017-05-24 13:54
211 查看
之前在上篇kotlin配置中我曾说道kotlin有一个强大的功能:
apply plugin: 'kotlin-android-extensions'
作为Android开发人员,我们在进行控件使用时,首先要声明和查询这个控件是什么类型?在哪里?
类型就是我要知道我这是textview还是button还是edittext呢,还是说是LinearLayout呢?通常我们都是要先声明出来。 例如: private Button mBtnLogin;
在哪里?那就是要找到这个控件了,不能我这有一百个button全都要吧,那还不代码界大乱啊。之前可能就要findViewById()方法来找到我们要操作的button了,当然现在已经有许多的注解简化了这一流程。但是kotlin告诉你,这还不行你这还不够简洁不够方便,那么kotlin是做到了什么效果呢?那就是你不在需要多写那一行声明View了,也不用在寻找你的View的ID了!我就什么什么狗了,这是要干嘛。给出以下代码看一下:
import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.Toast import kotlinx.android.synthetic.main.activity_login2.* class LoginActivity : AppCompatActivity() { // private var btn_login: Button? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login2) // btn_login= findViewById(R.id.btn_login) as Button? btn_login!!.setOnClickListener { login() } } fun login(){ btn_login!!.text = "登陆中" Toast.makeText(this@LoginActivity,"登录成功",Toast.LENGTH_SHORT).show() } }
首先先说下上面这个页面的布局上有一个Button,你会发现我已经把声明Button和findViewById都已经给注释掉了 。那么按照以前这是肯定跑不通的,估计要闪退了。但是在kotlin下完美跑通。
Kotlin Android Extensions are another Kotlin plugin that is included in the regular one, and that will allow
to recover views from Activities, Fragments y Views in an amazing seamless way.
也就是说这个插件完美的连接了视图xml和activity。
就在加入apply plugin:'kotlin-android-extensions'后只要在导入import kotlin.android.synthetic.main.activity_login2.*,这就解决了。把你在.xml里定义的控件的ID直接拿来用就行了,既当了控件View又当了ID,真的是身兼多职啊。(当然一定要一样啊),这是要把映射做到极致啊
还有就是发现没,写了这么一段代码 btn_login.text="登陆中", 这就又是kotlin的又一大改进,给view设置值,之前的setText()也给省略了。当然还有很多的,就不在多说了
相关文章推荐
- Kotlin编程之Kotlin Android Extensions(扩展插件)
- kotlin学习(-)android extensions
- 使用Kotlin开发Android 扩展函数(Extensions)
- Kotlin Android Extensions: 与 findViewById 说再见 (KAD 04) -- 更新版
- Android KTX与Kotlin Android Extensions
- kotlin android extensions使用方式
- Android开发,Kotlin的了解与学习(二)-----Kotlin数据类型与Extensions的学习
- Kotlin Android Extensions的集成相关
- kotlin学习笔记——Kotlin Android Extensions
- Use Kotlin Android Extensions
- Kotlin学习之kotlin-android-extensions
- 【转】Android世界的Swift - Kotlin语言
- Kotlin在Android工程中的应用
- Kotlin在Android工程中的应用
- 使用Kotlin开发Android
- 使用Kotlin开发Android应用(II):创建新工程
- 初窥Android网络通讯框架Volley
- Kotlin:Android世界的Swift
- 使用Kotlin开发Android应用(I):简介
- 使用Kotlin开发Android应用(II):创建新工程