gpt4 book ai didi

java - 更改进度对话框的进度单位(字节到兆字节)

转载 作者:行者123 更新时间:2023-12-04 05:03:05 30 4
gpt4 key购买 nike

我有一个进度对话框,显示使用字节作为进度单位下载我的文件
我想将进度单位转换为兆字节

public void initializeDialog()
{
this.pDialog = new ProgressDialog(act);
this.pDialog.setMessage("Download");
this.pDialog.setIndeterminate(false);
this.pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
this.pDialog.setCancelable(true);
}

public AsynchTest() {
initializeDialog();
}

@Override
protected void onPreExecute() {
super.onPreExecute();

pDialog.setProgressNumberFormat("%1d MB / %2d MB");
pDialog.show();
pDialog.setProgress(0);

}

@Override
protected Void doInBackground(Void... params) {

downloadContent();
return null;
}

@Override
protected void onProgressUpdate(Integer... progress) {


pDialog.incrementProgressBy((int) byteToMB(progress[0]));
}

@Override
protected void onPostExecute(Void result) {
pDialog.dismiss();

}

我使用此函数将字节转换为 mb
public long byteToMB(long byteTransform)
{
long mb=1024L*1024L;
return byteTransform/mb;

}

我用来更新进度对话框的代码 fragment
byte data[] = new byte[1024];
while ((count = input.read(data)) != -1) {
asynch.publishProgress(count);
output.write(data, 0, count);


}

我像这样设置了进度对话框的最大值
sizePDialog+=ConnectionManager.getLength(url);
pDialog.setMax((int) byteToMB(sizePDialog));

但是当我这样做时我会出现这个错误
04-07 20:09:55.119: E/AndroidRuntime(20166): java.lang.NumberFormatException: Invalid long: "%1d"

非常感谢

最佳答案

我觉得你不应该打电话setProgressNumberFormatonProgressUpdate就像医生说的
http://developer.android.com/reference/android/app/ProgressDialog.html#setProgressNumberFormat(java.lang.String)

Change the format of the small text showing current and maximum units of progress. The default is "%1d/%2d". Should not be called during the number is progressing.



事实上 setProgressNumberFormat只能更改进度和最大进度的显示方式,您无法更改,就像您尝试过的那样,在格式化之前的值。
我建议您在将值传输到进度对话框时将字节转换为 MB,然后这些值将被格式化为 MB。

这样做你应该更换 pDialog.incrementProgressBy(progress[0]);来自 pDialog.incrementProgressBy(byteToMB(progress[0]));并打电话
pDialog.setProgressNumberFormat("%1d MB / %2d MB");

onPreExecute

关于java - 更改进度对话框的进度单位(字节到兆字节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15866070/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com