Use Kotlin Android Extensions
来源:互联网 发布:linux 用户 主组 编辑:程序博客网 时间:2024/06/06 05:56
kotlin-android-extensions用于扩展绑定关系,为了解决findViewById()
的问题。
背景
Android开发中,findViewById()
是比较烦人的一个函数,开源界已经有几个库提供了解决办法,比如:ButterKnife,DataBinding等。
kotlin-android-extensions插件提供了一种方便的解决办法, 不用增加额外的代码,直接使用xml中定义的android:id就可以引用view, 例如:
// Using R.layout.activity_main from the main source setimport kotlinx.android.synthetic.main.activity_main.*class MyActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) textView.setText("Hello, world!") // Instead of findView(R.id.textView) as TextView }}
配置
- 项目的 build.gradle 添加依赖
classpath “org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version” - app 的 build.gradle 使用插件
apply plugin: ‘kotlin-android-extensions’ - 在代码开头 import 布局文件的属性
import kotlinx.android.synthetic.main..*
示例
布局文件res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content"/></android.support.constraint.ConstraintLayout>
下面,使用两种方式写MainActivity。
- 使用findViewById()
class MainActivity : AppCompatActivity() { private var mTextMessage: TextView? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mTextMessage = findViewById(R.id.message) as TextView mTextMessage!!.setText("Hello world") }}
- 使用kotlin-android-extensions
import kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() { private var mTextMessage: TextView? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) message.setText("Hello world"); }}
参考:Kotlin Android Extensions
阅读全文
1 0
- Use Kotlin Android Extensions
- < Kotlin > Kotlin Android Extensions (译文)
- Kotlin Android Extensions工具使用
- kotlin初窥之Kotlin Android Extensions
- Kotlin学习之kotlin-android-extensions
- Kotlin开发Android笔记10:Kotlin中Kotlin Android Extensions
- Android Studio 添加Kotlin extensions支持
- Kotlin-Android-Extensions:不仅仅是替代findViewById
- Kotlin Android Extensions的集成相关
- Kotlin编程之Kotlin Android Extensions(扩展插件)
- kotlin学习笔记——Kotlin Android Extensions
- Kotlin Android Extensions+Android MVP项目(RxJava+Rerotfit+OkHttp+Glide)
- kotlin in android 学习android extensions(一)
- Android Studio 添加Kotlin extensions 和lambda支持
- 使用Kotlin开发Android 扩展函数(Extensions)
- Kotlin Reference (十二) Extensions
- Android开发,Kotlin的了解与学习(二)-----Kotlin数据类型与Extensions的学习
- Writing Use Case Extensions
- iOS 动画 UIView CoreAnimation 回到初始状态
- SpingMvc 结合Huploadify 进行异步上传图片
- iOS开发验证码
- Realm For Android详细教程
- C++位运算详解
- Use Kotlin Android Extensions
- centos 使用jconsole 监控 java 虚拟机
- 函数,对象,数组,类型
- 【Go】获取当前程序EXE所在目录
- java实现验证码
- 利用mybatis-generator自动生成代码
- APP版本升级与服务器交互
- 20、vue.js 之vue模板间的传值
- shell常用技巧汇总