我是靠谱客的博主 玩命铃铛,这篇文章主要介绍Edittext限制小数后俩位,输入“.”自动补充0,现在分享给大家,希望可以做个参考。

参考:Edittext限制小数后俩位,输入“.”自动补充0


import android.text.SpannableStringBuilder
import android.text.Spanned
import android.text.method.DigitsKeyListener
/**
* EditText 输入的数字格式化
*/
class NumberValueFilter : DigitsKeyListener(false, true) {
/**
* 小数位数
*/
private var digits = 18
fun setDigits(d: Int): NumberValueFilter {
digits = d
return this
}
override fun filter(source: CharSequence, start: Int, end: Int, dest: Spanned, dstart: Int, dend: Int): CharSequence {
var newSource=source
var newStart = start
var newEnd = end
val out = super.filter(newSource, newStart, newEnd, dest, dstart, dend)
if (out != null) {
newSource = out
newStart = 0
newEnd = out.length
}
val len = newEnd - newStart
if (len == 0) {
return newSource
}
if (newSource.toString() == "." && dstart == 0) {
return "0."
}
if (newSource.toString() != "." && dest.toString() == "0") {
return ""
}
val dlen = dest.length
for (i in 0 until dstart) {
if (dest[i] == '.') {
return if (dlen - (i + 1) + len > digits) "" else SpannableStringBuilder(newSource, newStart, newEnd)
}
}
for (i in newStart until newEnd) {
if (newSource[i] == '.') {
return if (dlen - dend + (newEnd - (i + 1)) > digits) "" else break
}
}
return SpannableStringBuilder(newSource, newStart, newEnd)
}
}

最后

以上就是玩命铃铛最近收集整理的关于Edittext限制小数后俩位,输入“.”自动补充0的全部内容,更多相关Edittext限制小数后俩位,输入“内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部