2012-10-01 37 views
1

我是Android新手,並且正在進行編碼以滿足我的各種需求。爲什麼ProgressDialog在運行時沒有顯示?

我有一個奇怪的問題,其中我需要顯示進度對話框來掩蓋從Facebook下載圖像並將它們顯示在ListView中後,我將它們放入矢量對象中的後臺工作。

我的代碼是這樣的:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     facebook.authorize(this, new String[] { "email", "publish_checkins", 
       "user_photos" }, 

     //new Dialog Listner code 

     btnAlb = (Button) findViewById(R.id.btnAlb); 
     logout = (Button) findViewById(R.id.logout); 

     btnAlb.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 


    //**   Log.i("pDialog","Entry"); 
     pdialog = ProgressDialog.show(MainActivity.this, "Processing Data","Loading.."); 
    //this is not working !! 
    //**   Log.i("pDialog","Exit"); 

       try { 

    //Lot of JSON Parsing 
        pdialog.dismiss(); 

        Intent intent = new Intent(MainActivity.this,AlbumHolder.class); 

        startActivity(intent); 

       } catch (Exception e) { 
        e.printStackTrace(); 
        pdialog.dismiss(); 
       } 


      } 
     }); 

} 

所以我已經登錄ProgressDialog的開始和結束,並預計該對話框出現。但事實並非如此。有人可以解釋爲什麼嗎?

我也使用了runOnUiThread()線程,但它也產生了相同的結果。

+0

顯示兩個連續日誌的輸出,但進度對話框不顯示。 –

+0

你的JSON解析是否完成?如果不是,那就意味着按鈕的onClick()沒有被執行。 –

+0

我的日誌顯示如下: 10-01 18:36:37.772:DEBUG/Facebook授權(6544):登錄成功! access_token = $$ expires = $$ 10-01 18:36:37.822:WARN/InputManagerService(59):窗口已經聚焦,忽略焦點增益:[email protected] 10-01 18:36:40.752:INFO/pDialog(6544):Entry 10-01 18:36:40.802:INFO/pDialog(6544):Exit 10-01 18:36:40.802:DEBUG/Facebook-Util (6544):GET URL:https://graph.facebook.com/me/albums?access_token=$$&format=json –

回答

0

您應該使用pdialog.dismiss();當你的任務完成。對於這個問題,你應該使用AsyncTask類。更多信息Read This Tut.

+0

謝謝你的迴應,我終於實現了異步任務,發現結果超出預期。 –

3

定義進度對話框的方法不正確。試着這樣

pdialog =new ProgressDialog(mContext); 
pdialog.setMessage("Your message"); 
pdialog.show(); 

這裏mContext是你的活動 的背景下,並使用pdialog.dismiss();予以駁回

+0

這一直不工作。很多時候,當我嘗試使用mContext或getApplicationContext()時,我得到了空指針,但進度對話框顯示了我何時使用了Activity.this。 –

+0

我的活動名稱是MainActivity。所以爲了在pDialog創建中使用Context,我使用了「MainActivity.this」並運行代碼。進度對話框保持隱藏狀態。並作爲第二個mesure,而不是使用上述上下文,我在我的MainActivity中創建了一個Context類變量,並將它傳遞給pDialog,然後我得到一個NullPointerException。 此外,我正在使用pdialog.dismiss()方法在我的JSON解析工作結束時關閉我的PD。 請指導我這種情況有什麼問題。 –

+0

pdialog = new ProgressDialog(MainActivity.this);應該在你的情況下工作。你能否更新你的代碼,以便我知道它有什麼問題? – Antrromet

相關問題