我是靠谱客的博主 玩命铃铛,最近开发中收集的这篇文章主要介绍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限制小数后俩位,输入“.”自动补充0所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部