我试图在android中构建一个进度条,因为你知道进度条获取进度的int,但是我需要将float传递给进度条,我该怎么办?
private Runnable myThread = new Runnable(){
@Override
public void run() {
mypb = mypb + 100 / time;
pb.setProgress(mypb);
}
};
答案 0 :(得分:16)
你现在可能已经解决了,但我的解决方法是乘以10或100,具体取决于小数位数。
如果您的值为30.59且最大值为100,那么只需将两个值乘以100.这将为您提供3059和10000.
答案 1 :(得分:2)
setProgress()没有float参数。所以你不能设置浮动值。
但您可以通过 -
将浮动值转换为int pb.setProgress((int)mypb);
答案 2 :(得分:0)
您可以通过将总数除以您想要更新的部分来计算您的进度将有多少更新,然后获取循环索引和第一个变量的提醒。
if ((i % (earthquakes.length()/20)) == 0) {
progCount = (int) ((i / (float) earthquakes.length()) * 100);
publishProgress();
}
在这种情况下,我将长度除以20,每5%更新一次。当然,你需要在结尾乘以100并将int转换为0到99之间的int。如果你愿意,可以添加一个使其为1到100。