使用Kotlin创建动态Android TextWatcher

Today there’s 1 Pull Request that attract my attention. This code is part of a simple calculator activity. It listen to a field to calculate the total nominal and shows it in a TextView.

今天有1个请求请求吸引了我的注意。 此代码是简单的计算器活动的一部分。 它侦听一个字段以计算总标称并将其显示在TextView中。

seratus_ribu.addTextChangedListener(object : TextWatcher {


                    override fun afterTextChanged(s: Editable) {}


                    override fun beforeTextChanged(
                        s: CharSequence,
                        start: Int,
                        count: Int,
                        after: Int
                    ) {
                    }


                    override fun onTextChanged(
                        s: CharSequence,
                        start: Int,
                        before: Int,
                        count: Int
                    ) {
                        val sumPaidInstallment = sumPaidInstallment()
                        val txtNominal =
                            "${DisplayHelper.formatCurrency(sumPaidInstallment)} / ${DisplayHelper.formatCurrency(
                                totalPaidInstallment
                            )}"


                        angsuran.text = txtNominal
                    }
                })

Repeat this code for 11 field and you got a large code with lot of empty space and empty implementation. With java, there’s nothing you can do. You just accept it. But with kotlin, code like this become more and more unacceptable.

对11个字段重复此代码,您将获得一个大型代码,其中包含大量空白空间和空的实现。 使用Java,您无能为力。 您只接受它。 但是使用kotlin,这样的代码变得越来越难以接受。

To fix it we can leverage lambda in kotlin. So I created a DynamicTextWatc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值