2012-01-14 91 views
0

我有一個應用程序,當用戶按下按鈕時,可以查看圖像網絡。其他屏幕在其他活動中。由於許多圖像的數量很多,需要一些時間才能加載,因此我需要一些能夠通知用戶的信息,他已按下按鈕並且必須等待。我嘗試使用微調,但我不能爲我的XML工作,所以你可以建議我什麼?許多Android應用程序只有在加載最終視圖之前纔會有黑屏,或者例如使按鈕更改backgrounf顏色表示用戶已按下並且必須等待。我必須把代碼放在哪裏?按下按鈕後等待圖像圖標

這是我的代碼。

b4.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View l) { 
        /*ParnassosTheme();*/ 
        Intent i = new IntentScreen.this,OtherScreen.class); 
        Bundle b = new Bundle(); 
        b.putString("id", id); 
        i.putExtras(b); 
        startActivity(i); 
      } 
      }); 

和我的其他屏幕活動

public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
...do things... 

回答

1

當你加載任務顯示在任務開始時進度對話框,並關閉它,當工作完成。注意:它工作正常,但onCreateDialog()已被棄用info here。如果您的目標SDK 11+考慮使用DialogFragment而不是read here

public class OtherScreen extends Activity{ 
    private static final int LOADING_DIALOG_KEY = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     // initialization 

     // show loading dialog 
     showDialog(LOADING_DIALOG_KEY); 

     new LoadDataTask().execute(); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id){ 

     ProgressDialog dialog = null; 

     if (id == LOADING_DIALOG_KEY){ 

      dialog = new ProgressDialog(this); 
      dialog.setTitle("Dialog title"); 
      dialog.setMessage("Data loading..."); 
      dialog.setIndeterminate(true); 
      dialog.setCancelable(false); 
     } 

     return dialog; 
    } 

    private final class LoadDataTask extends 
     AsyncTask<Void, Void, Void> 
    { 

     @Override 
     protected Void doInBackground(Void... params) 
     { 
      // do work here 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) 
     { 
      dismissDialog(LOADING_DIALOG_KEY); 
     } 
    } 
} 
+0

好的我會嘗試一下,我會發布。這是什麼意思:「注意:它工作正常,但onCreateDialog()已被棄用信息在這裏。」我應該在初始部分寫任何東西嗎? – ghostrider 2012-01-14 18:34:38

+0

棄用谷歌意味着最好不要使用它,因爲它不再受到支持,並且及時(3年IIRC)它將從SDK中刪除。在初始化部分中,您通常會初始化活動的組件。本部分由您決定,沒有額外的工作讓ProgressDialog工作。 – Maxim 2012-01-14 18:55:29

+0

好吧,我試過這個,它沒有改變任何東西。如果我刪除dismissdialogbox它永遠加載。所以把它放在一個錯誤的地方。我應該在哪裏?一切完成後? – ghostrider 2012-01-14 19:17:07