Kotlin与Android的奇妙之旅-函数扩展(四)

本文介绍了Kotlin在Android开发中的优势,特别是扩展函数的使用,通过对比Java代码,展示了如何简化findViewById和setOnClickListener操作。通过扩展函数,开发者可以避免继承,简化代码,提高开发效率。文中还提供了一个关于扩展Toast的实例,进一步说明了扩展函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

世上无难事只怕有心人

前一篇博客我们学习了在Kotlin中如何找到控件,是不是非常的方便呢,今天带给大家一个更方便的用法,那就是扩展函数,扩展函数怎么用呢?不用急,下面就教给大家:

先给大家展示一段在java中的代码:

TextView textView = findViewById(R.id.textView);


textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(TwoActivity.this, "你好啊", Toast.LENGTH_SHORT).show();
    }
});

相信大家对这段代码已经非常的熟悉了,那么,这段代码在Kotlin中应该怎么写呢?大家可以看一下下面的:

button.setOnClickListener { toast("测试扩展函数") }

看到这里估计你心里会出现这样的话:哎哟 我去 我*……,不要急,这个下面我们会慢慢讲到的,下面让我们一步一步来看看他到底是怎么实现的

findviewbyid

上一篇已经说过了,在Kotlin中根本不需要去找控件,直接使用控件ID就可以对控件进行一系列的操作,所以FindViewbyid这一步已经可以省略了

setOnClickListener

在Kotlin中的监听我们可以这样写,不用实现里面的接口,所以这样就已经省去了一段代码,再加上输出Toast,就是下面的样式

button.setOnClickListener {

     Toast.makeText(this,"hello lambda",Toast.LENGTH_SHORT).show()

    }

这样相对于java已经省去了不少了代码了,但是我们可是不会就此满足的,其实,我们还可以进一步地省略

扩展函数

函数扩展可以让你对任意类进行扩展,而不用继承等等复杂的操作。
举个栗子!拿Toast来说,到处都可以用到,我们新建个kt文件,叫做ext
里面写上如下代码:

fun Context.toast(message:String,length : Int = Toast.LENGTH_SHORT){
  Toast.makeText(this,message,length)
}

我个人感觉,这有点像抽出工具类,把这个工具类抽取出来做成公共的工具方法,在项目中任何地方都可以用到,然后我们刚才的代码就变成了下面的样子:

button.setOnClickListener { toast("测试扩展函数") }

是不是很神奇呢,又学会了一个技能,大家赶紧去试试吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值