所以,在我的对话框中,我有一个按钮可以启动 Asynctask 下载器以从我的服务器获取一些文件;这很好用。但是,我想关闭当前的对话框并在单击按钮时显示 ProgressDialog。我将如何解决这个问题?
目前,如果我单击按钮(我的对话框中的一个元素),整个 UI 会在下载器从服务器下载文件时冻结。下载器完成任务后,将显示进度对话框。
我的代码看起来像这样
MainActivity{
Dialog dialog;
ProgressDialog progress;
onCreate(){
dialog = new Dialog(this);
progress = new ProgressDialog(this);
dialog.setContentView(Some View Resource With My Button);
someMethod();
dialog.show();
}
someMethod(){
Button button = (Button) dialog.findViewById(resource of button);
button.setOnClickListener(new OnClickListener(){
onClick(){
dialog.dismiss();
progress.show();
new DownloaderAsyncTask(progress).execute().get();
}
//go to another activity when download finished
});
}
private class DownloaderAsyncTask extends AsyncTask<Void, Void, Void>{
ProgressDialog progress;
DownloaderAsyncTask(ProgressDialog progress){
this.progress = progress;
}
doInBackGround(){
//Downloading
}
onPostExecute(){
//Kill connection
this.progress.dismiss();
}
}
}
谢谢。如果你们需要任何其他信息,请告诉我。