2013-04-05 114 views
0

我想建立一个类去上网,下载数据,然后将其加载到数据库中。我在使用单个进度对话框做这件事时没有问题,但可以根本找不到如何有多个对话框。在研究这个时候,我发现了数百个进度对话问题,所以它看起来不像应该的那样直截了当。Android使用多个进度对话框

我一直在使用处理器和线程的尝试,但根本无法MA

我找工作的代码来完成这个的一个例子。

这里是我在尝试的伪代码:

public class myactivity extends Activity() 
{ 
    private WebIO webIO ;  // web acess io 
    private DataIO DataIO ;  // database io 

    public void onCreate(Bundle savedInstanceState) { 
     DataIO = new DataIO(this); 
     WebIO = new WebIO(); 
     DataIO.open(); 
     runProgram(); 
    } 
} 

private void runProgram() { 
    startProgressDialog("Downloading data from web"); 

    new Thread() { 
     public void run() { 
      try{ 
       String vData = webIO.getData(); 

       dismissProgressDialog(); 

       if (vData.length() > 0) { 
        promptUser(vData); 
    } } } } 
} 

private void promptUser(vData){ 
    if alertdialog_to_prompt_user_to_load(){ 
    { 
     loadData(pData) 
    } 

private void loadData(String pData){ 
    startProgressDialog("Loading data into database"); 

    new Thread() { 
     public void run() { 
      try{ 
       loadDataIntoDatabase(); 

       dismissProgressDialog(); 
    } } } } 
} 
+0

Asynctask。 1为每个进展。 – Warpzit 2013-04-05 18:02:58

+0

我试过了,仍然无法使第二个progressdialog工作。有没有一个例子在某个地方使用多个progressdialogs? – miannelle2 2013-04-07 23:33:29

回答

2

只有这样,才能有多个对话是分层它们彼此的顶部,这是一个明显的用户体验禁忌。在android中,对话框是他们自己的窗口,所以一次只能有一个焦点。

要解决您的问题,请创建一个包含多个ProgressBar小部件的自定义对话框。最简单的方法是以DialogFragment开头并覆盖onCreatedDialog()以返回带有自定义视图的AlertDialog。要在警报对话框上设置自定义视图,请参阅AlertDialog上的setView()方法。例如,

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    LayoutInflater li = LayoutInflater.from(context); 
    View layout = = li.inflate(R.layout.my_dialog); 

    return new AlertDialog.Builder(getActivity()) 
      .setIcon(..) 
      .setTitle(...) 
      .setView(layout) 
      ... 
      .create(); 
} 

它会是整齐漂亮封装成多下载进度对话框,在这里你可以注册额外的下载,并有一流的自动添加一个进度条,并注册了自己最新进展这一切。

+0

Jeffrey,这完全不能帮助我。我已经在使用自定义视图的自定义对话框。问题是强制关闭时调用它,或另一个,第二次从“运行”块或从“runhandler”。 – miannelle2 2013-04-07 23:34:19

+1

你的问题没有提到任何关于强制关闭的问题,而且你的问题会多次问及如何使用多个对话框。我建议你发布另一个更明确地解决你现在遇到的问题的问题。 – 2013-04-08 17:09:54