如何正确更新进度对话框?

时间:2013-11-17 14:13:55

标签: android progressdialog progress

在我的应用程序中,我显示的列表中包含每个项目的复选框。当用户点击按钮时,我的应用程序应将每个选中的项目(联系人)导入到联系人应用程序。 我试图向用户显示当前项目的进度(ItemIndex / TotalItems)+文本(通过使用进度对话框)。 同时我的应用程序正在检查联系人应用程序中已存在的每个项目(联系人),如果是这样,将使用stratActivityForResult显示一个对话框(此对话框是一个活动对话框主题)。 我试图使用asynctask,它所做的就是显示第一个项目的进度对话框,仅此而已。 我也尝试使用处理程序,它也做同样的事情。

谁能帮助我吗?

编辑:

int filesIndex=0;
ArrayList selectedFiles<String>;
startImport();

private void StartImport(final ArrayList<String> Files) 
{
  //checks if there's allready an existing item and if there is, call  displayConflict();

}




private void displayConflict(String file1, String file2) 
{
  startActivityForResult....//call an activity that looks like a dialog....

}



 public void onActivityResult(int requestCode, int resultCode, Intent data) 
{
  //use data....
  operate();//addnew / update / skip
  MoveNext();
}



protected void Movenext()
{
  filesIndex++; //------------> this is the step where I want to update ui with progressDialog....
  StartImport();
}

1 个答案:

答案 0 :(得分:0)

如果你正在使用 AsyncTask ,那么这项工作非常简单。因为您必须使用 publishProgress(progress)获取正在运行的作业的百分比值并将其作为 int 传递,其中progress是正在进行的计算值(状态)任务。

然后,覆盖 AsyncTask onProgressUpdate ,它将使用 publishProgress(progress)获取您传递的值,并在此方法中更新您的progressBar。

您可以参考以下链接获取更多帮助:

https://stackoverflow.com/a/7592623/1235555

Example