之前在上篇kotlin配置中我曾说道kotlin有一个强大的功能:

        
  1. apply plugin: 'kotlin-android-extensions'
作为Android开发人员,我们在进行控件使用时,首先要声明和查询这个控件是什么类型?在哪里?
类型就是我要知道我这是textview还是button还是edittext呢,还是说是LinearLayout呢?通常我们都是要先声明出来。 例如: private Button mBtnLogin;

在哪里?那就是要找到这个控件了,不能我这有一百个button全都要吧,那还不代码界大乱啊。之前可能就要findViewById()方法来找到我们要操作的button了,当然现在已经有许多的注解简化了这一流程。但是kotlin告诉你,这还不行你这还不够简洁不够方便,那么kotlin是做到了什么效果呢?那就是你不在需要多写那一行声明View了,也不用在寻找你的View的ID了!我就什么什么狗了,这是要干嘛。给出以下代码看一下:

import android.os.Bundleimport android.support.v7.app.AppCompatActivityimport android.widget.Toastimport 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 fromActivities,Fragments yViewsin 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()也给省略了。当然还有很多的,就不在多说了


更多相关文章

  1. Listview的onItemClickListener无法响应的问题
  2. Android知识点记录: 使用代码设置 android 上listView的条目的点
  3. Android(安卓)4.1源代码今日将发布
  4. Android(安卓)编程 设计规范
  5. Android单元测试全解
  6. 中国移动开发者社区专访:学习Android的两大法宝
  7. Android(安卓)Layout XML属性
  8. 我见过的最好的DataBinding解析
  9. android通知栏进度条

随机推荐

  1. ANDROID IOS对字体加粗
  2. android 进程内存查看
  3. Android:动画效果translate、scale、alph
  4. android Immutable bitmap passed to Can
  5. android软件安全攻防实例第一章笔记
  6. Android中两种设置全屏的方法 && Android
  7. 转 : Android中Message机制的灵活应用
  8. Android源码及SDK国内镜像下载
  9. Android(安卓)Audio System 之二:AudioFli
  10. Android启动过程