【发布时间】:2014-04-22 19:09:15
【问题描述】:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Moving..");
progressDialog.setIndeterminate(false);
progressDialog.setMax(100);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setCancelable(false);
progressDialog.show();
return progressDialog;
default:
return null;
}
}
// AsyncTask for the Progress Dialog and to do Background Process
private class myAsyncTask extends AsyncTask<File, String, String> {
File sourceFile;
@Override
protected void onPreExecute() {
super.onPreExecute();
// Shows Progress Bar Dialog and then call doInBackground method
showDialog(0);
}
@Override
protected String doInBackground(File... params) {
sourceFile = params[0];
// code to copy file
// setting file name of copying filename
**progressDialog.setMessage(children[i]);**
publishProgress("" + (count * 100) / children.length);
}
@Override
protected void onProgressUpdate(String... progress) {
progressDialog.setProgress(Integer.parseInt(progress[0]));
}
@Override
protected void onPostExecute(String result) {
progressDialog.dismiss();
if(result==null)
{
Toast.makeText(getApplicationContext(),"File(s) moved",Toast.LENGTH_LONG).show();
}
}
}
我需要显示复制文件的文件名。我正在使用异步任务在后台复制文件。我能够获得第一个文件的文件名。但在那之后应用程序崩溃了。有什么办法可以为此设置 ProgressDialog 中的文本?
日志猫:
04-23 00:42:26.474: E/AndroidRuntime(26708): 在 android.app.AlertDialog.setMessage(AlertDialog.java:185) 04-23 00:42:26.474: E/AndroidRuntime(26708): 在 android.app.ProgressDialog.setMessage(ProgressDialog.java:314) 04-23 00:42:26.474: E/AndroidRuntime(26708): 在 com.siju.instaclassify.MainActivity$myAsyncTask.doInBackground(MainActivity.java:357) 04-23 00:42:26.474: E/AndroidRuntime(26708): at com.siju.instaclassify.MainActivity$myAsyncTask.doInBackground(MainActivity.java:1) 04-23 00:42:26.474: E/AndroidRuntime(26708): 在 android.os.AsyncTask$2.call(AsyncTask.java:264)
【问题讨论】:
标签: android android-asynctask progressdialog