2013-04-05 58 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