2011-12-12 60 views
0

我使用這個簡單的代碼的Android progressDialog dont't顯示,如果startActivity(myIntent)

public class Main extends Activity { 
private ProgressDialog progressDialog; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    //bouton Exemples de prix 
    findViewById(R.id.button1).setOnClickListener(
      new Button.OnClickListener() { 
       public void onClick(View v) { 
        //start the progress dialog 
        runDialog(4); 
       Intent myIntent = new Intent(getBaseContext(), Exemple_prix.class); 
        startActivity(myIntent); 

       } 
      } 
    ); 

} 

private void runDialog(final int seconds) 
{ 
    progressDialog = ProgressDialog.show(this, "", "Chargement..."); 

    new Thread(new Runnable(){ 
     public void run(){ 
      try { 
       Thread.sleep(seconds * 1000); 
       progressDialog.dismiss(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 
} 

progressDialog沒有顯示,但它的工作原理,如果我禁用

//startActivity(myIntent); 

回答

2

你的進度對話框綁定到活動,所以它顯示在第一個活動的頂部,然後立即開始新活動,該活動涵蓋舊活動和進度對話框。爲什麼你要顯示進度對話框有什麼特別的原因嗎?如果它與第二項活動中的工作有關,則應該將其展示在那裏。

在旁註中,不要創建一個新線程就像那樣睡覺。只需使用postDelayed

+0

你是個例子嗎? – user1094324

+0

最後,這個代碼與2.2模擬器問題工作正常和1.5 – user1094324