![](/img/trans.png)
[英]I'm trying to fetch the content of website and making it to display in the android app
[英]I'm making a renaming application in Android
我想在执行重命名任务时显示进度对话框。 单击重命名按钮后,将出现该对话框。 但是,重命名功能(循环)结束后,将显示进度对话框。 这是我的代码
public void onRenameClicked(View v){
ProgressTask task = new ProgressTask();
task.execute();
for(int i = 0; i < num_of_files; i++){
rename(file[i]);
}
}
这是内部类以显示对话框
class ProgressTask extends AsyncTask<Integer, Void, Void>{
ProgressDialog pd = new ProgressDialog(MainActivity.this);
@Override
protected Void doInBackground(Integer... i) {
for(int j = 0; j < item.size(); j++) {
pd.setProgress(j);
pd.setMessage((j) + "/" + item.size());
}
return null;
}
@Override
protected void onPreExecute() {
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setTitle("변경중");
pd.setMax(item.size());
pd.show();
}
}
你必须用
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
pd.setProgress(values[0]);
pd.setMessage((values[0]) + "/" + values[1]);
}
和
publishProgress(j, item.size());
在doInBackground()
。 这些修改是必需的,因为setProgress
和setMessage
必须在UI线程中而不是在后台线程中执行。
您确实意识到您正在调用异步任务,而没有数据..因此它很快完成。 你或许应该在传递通过参数文件到的AsyncTask的列表,然后相应地处理这些电话为每个文件里面的AsyncTask和更新的AsyncTask的进度完成重命名文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.