2013-08-02 18 views
3

新手android開發在這裏。我在AsyncTask中遇到一些ProgressDialog問題。ProgressDialog上的主題使其全屏

我想在創建ProgressDialog時應用主題,但是當我應用它時,對話框將全屏顯示,並且我的活動被隱藏。當我在實例化中刪除主題時,這是正常的。

我只是想知道爲什麼。

這裏是我的課用的AsyncTask:

公共類同步{

private static AppManager  app = AppManager.getInstance(); 

public void Synchronise() { 
} 

AsyncTask<Void, Void, Boolean> task = new AsyncTask<Void, Void, Boolean>() { 

    private ProgressDialog pd; 

    @Override 
    protected void onPreExecute() {; 
     pd = new ProgressDialog(app.m_AppContext, android.R.style.Theme_Black); 
     pd.setTitle("Veulliez patienter"); 
     pd.setMessage("Synchronisation en cours..."); 
     pd.setCancelable(false); 
     pd.setIndeterminate(true); 
     pd.show(); 
    } 

    @Override 
    protected Boolean doInBackground(Void... arg0) { 
     try { 
      //Synchronisation 
      Thread.sleep(2000); 
      Log.d("DEBUG","sync en cours"); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
      return false; 
     } 
     return true; 
    } 

    @Override 
    protected void onPostExecute(Boolean result) { 
     pd.dismiss(); 
     if (result) 
      Toast.makeText(app.m_AppContext, "Synchronisation terminé avec succès", Toast.LENGTH_SHORT).show(); 
     else 
      Toast.makeText(app.m_AppContext, "La synchronisation a échoué", Toast.LENGTH_SHORT).show(); 
     Log.d("DEBUG","SYNC DONE"); 
    } 
}; 

public void startSync() { 
    if (app.m_bIsOnline) 
     task.execute((Void[])null); 
    else 
     Toast.makeText(app.m_AppContext, "Mode offline. Synchronisation impossible", Toast.LENGTH_SHORT).show();    
} 

}

感謝您的幫助。

+0

嘗試設置不同的主題。 'android.R.style.Theme_Black'是主題上的一個變體,確保背景完全是黑色。 – Vikram

+0

我嘗試了很多主題,例如'android.R.style.Widget_Holo_Light_ProgressBar_Small'。它不起作用:( – Bernie

+0

嘗試'pd = new ProgressDialog(this,R.style.Theme_Black);'。 – g00dy

回答

1

您需要將樣式父項更改爲對話框。例如:

<style name="AppTheme.Light" parent="Theme.AppCompat.Dialog" > 
     <item name="colorAccent">@color/theme_color</item> 
     <item name ="android:background">@color/theme_background_light</item> 
     <item name = "android:textColor">@color/black</item> 
</style> 
+0

這與上面的Lolipop廣告一起工作!但有兩個ProgressDialog顯示與KitKat設備:(! – MohanRaj