我是Kotlin的新手,自己学习。我有一个字符串为:
"202026141059"
我将其转换为Int值,并将其设置为进度条最大值为:
availableCreditProgress.max = queryBalancePicResponseData.available_credit!!.toString().toInt()
问题是它给了我 java.lang.NumberFormatException:无效的int:“ 202026141059”
有人可以指出我在做什么错吗? 预先感谢!
答案 0 :(得分:1)
Int
仅从Int.MIN_VALUE
即-2147483648
到Int.MAX_VALUE
即2147483647
。您的值超出了该值...如果需要在某个地方输入值,请尝试toLong
。
由于ProgressBar仅允许Int
本身,请尝试将其缩小到该比例……我会选择最大100
。
因此,如果您的最大值202026141059
实际上是进度栏中的100
,那么您就以0
开始,如果达到2020261410
,切换到1
(或四舍五入),等等。
这是一个基本示例...当然,您可以用另一种方式来传递您的值,并以不同的方式使用它;-)我现在才打印它:
val maxValue = "202026141059".toLong()
var currentProgress = -1L
val scale = 100000
(0..(maxValue/scale)).forEach { curr ->
currentProgress = (curr * 100 * scale / maxValue ).also {
if (it != currentProgress) {
println(it)
}
}
}
答案 1 :(得分:0)
如果必须处理不适合ProgressBar的大数字,则必须使用1000
来缩放它们。
因此,值202026141059 must be divided by 1000 = 202026141.059
并通过四舍五入这个数字,您将得到202026141
,这将是max
必须使用您分配给ProgressBar的所有值来完成此操作。