2012-06-20 33 views
3

我有一些數據庫操作的asynchtask進度setVisibility doesn't工作

在我開始我調用這個函數的任務,展現prograssBar 的進度是在RelativLayout因爲有人在網上說,打電話setVisibility();在一些追逐的進度doesn't工作(和它要麼doesn't對我來說)

public static void showProgressBar() 
{ 
    Log.e("TEST","Try to show ProgressBar, Visibiliy: " + prog_bar.getVisibility()); 
    if(prog_bar != null) 
    { 
     prog_bar.setVisibility(RelativeLayout.VISIBLE); 
     Log.e("TEST","Success"); 
    } 
    else 
    { 
     Log.e("TEST","prog_bar != null"); 
    } 
    Log.e("TEST","Visibiliy: " + prog_bar.getVisibility()); 
} 

上PostExecute我調用該函數:

public static void hideProgressBar() 
{ 
    Log.e("TEST","Try to hide ProgressBar, Visibiliy: " + prog_bar.getVisibility()); 
    if(prog_bar != null) 
    { 
     prog_bar.setVisibility(RelativeLayout.INVISIBLE); 
     Log.e("TEST","Success"); 
    } 
    else 
    { 
     Log.e("TEST","prog_bar != null"); 
    } 
    Log.e("TEST","Visibiliy: " + prog_bar.getVisibility()); 
} 

奇怪的是,方法被稱爲正確的,也是日誌是正確的,沒有錯誤出現,但沒有progressBar顯示。

Android 2.2系統, Windows 7中, 測試在仿真器和GalaxyTab的

問候schwandi

編輯:

改變了我的方法:

public static void hideProgressBar() 
{ 

    if(prog_bar != null) 
    { 
     Log.e("TEST","Try to hide ProgressBar, Visibiliy: " + prog_bar.getVisibility()); 
     prog_bar.setVisibility(View.GONE); 
     Log.e("TEST","Success"); 
    } 
    else 
    { 
     Log.e("TEST","prog_bar != null"); 
    } 
    Log.e("TEST","Visibiliy: " + prog_bar.getVisibility()); 
} 

public static void showProgressBar() 
{ 

    if(prog_bar != null) 
    { 
     Log.e("TEST","Try to show ProgressBar, Visibiliy: " + prog_bar.getVisibility()); 
     prog_bar.setVisibility(View.VISIBLE); 
     Log.e("TEST","Success"); 
    } 
    else 
    { 
     Log.e("TEST","prog_bar != null"); 
    } 
    Log.e("TEST","Visibiliy: " + prog_bar.getVisibility()); 
} 

還是好好嘗試一下工作。

另外我改變了prog_bar是ProgressBar本身。

prog_bar = (ProgressBar) findViewById(R.id.progressBar1); 
+0

抱歉,男人,但這是progressBar不progressDialog,沒有像顯示或解僱這樣的方法。 – Sajmon

+0

謝謝你的答案。我改變了我的代碼一點點,你可以看到上面的新代碼。但它仍然沒有工作 – schw4ndi

+0

@Tim抱歉,這是我的錯誤錯誤.......... :) –

回答

0

嘗試將啓動asyncTask你的代碼整塊的一個工人線程這樣的(離開了onClick()如果這是不相關):

public void onClick(View v) { 
    new Thread(new Runnable() { 
     public void run() { 

      // your entire asyncTask initiation code block here 

     } 
    }).start(); 
} 

Here is how it solved my own problem &這裏the docs