博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin中使用简洁明了的代码替换findViewByid
阅读量:7286 次
发布时间:2019-06-30

本文共 1377 字,大约阅读时间需要 4 分钟。

第一种(推荐使用)

(Android Studio 内置)

首先添加

apply plugin: 'kotlin-android-extensions'

官方示例

// 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)                // 替代 findViewById
(R.id.textView) textView.setText("Hello, world!") }}

第二种

在 Kotlin 中使用 ButterKnife 与 Java 中完全一致。 在 Gradle 构建脚本的修改如下,后面将重点介绍代码部分的差异。

在 Gradle 依赖中添加 kotlin-kapt 插件,并使用 kapt 替代 annotationProcessor

apply plugin: 'kotlin-kapt'dependencies {    ...    compile "com.jakewharton:butterknife:$butterknife-version" kapt "com.jakewharton:butterknife-compiler:$butterknife-version" }

我们已经将整个 ButterKnife 转换为 Kotlin, 参见。

让我门看看发生了什么变化。 在 Java 中使用注解对将变量与之对应的 view 进行绑定:

@BindView(R2.id.title) TextView title;

在 Kotlin 中使用而不是直接使用变量。 对属性使用注解:

@BindView(R2.id.title)lateinit var title: TextView

@BindView 被定义为仅应用于变量字段,而将注解应用于整个属性时,Kotlin 编译器能够理解并且覆盖相应注解的字段。

允许声明非空类型,并在对象创建后(构造函数调用后)初始化。 不使用 lateinit 则需要声明并且有额外的空安全检测操作。

使用 ButterKnife 注解可以将方法设置为监听器:

@OnClick(R2.id.hello)internal fun sayHello() { Toast.makeText(this, "Hello, views!", LENGTH_SHORT).show() }

 注意在onCreate方法里,添加

ButterKnife.bind(this@MainActivity)

转载于:https://www.cnblogs.com/tongtong91/p/8441236.html

你可能感兴趣的文章
JVM——头脑简单的阿拉丁神灯
查看>>
常用的WEB服务器简介
查看>>
常用英语单词简略写法
查看>>
用sql统计每十分钟内的数据量大小
查看>>
Eclipse编辑器中设置代码编写区域字体大小
查看>>
CountDownLatch踩过的坑
查看>>
我的友情链接
查看>>
《Head first HTML与CSS 第二版》读书笔记 第十三章 表格和列表
查看>>
微服务架构下业务单机QPS跑不上去应从哪些角度分析
查看>>
Oracle中的索引详解
查看>>
Configure iSCSI Target on RHEL7
查看>>
svn分支代码合拼
查看>>
[activiti6.0]使用
查看>>
如何使用PHP开发比特币详解
查看>>
printf格式
查看>>
IOS UITableViewCell使用详解
查看>>
一个牛人给java初学者的建议(2)
查看>>
谈校长摆脱官本位制
查看>>
(翻译) Android ListView 性能优化指南
查看>>
CSS3 基本语法
查看>>