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