2011-12-10 11 views
0

誰かが私のコードが機能しない理由を教えてもらえますか? ProgressDialogを表示したいのですが、以下のコードの問題は、たとえ関数ConsultaComercioを処理するのに多くの時間を費やしたとしても、表示されないということです。私は多くの例を見てきましたが、私が間違っていることを理解していません。私はあなたの助けに感謝します。前もって感謝します。Android ProgressDialogが機能しない

pd = ProgressDialog.show(this, "", "Loading...", true); 
Toast.makeText(getApplicationContext(), "Cargando.... " + String.valueOf(numero_prueba), Toast.LENGTH_SHORT).show(); 

new Thread() { 
    public void run() { 
     try{ 
      // Do some Fake-Work 
      ConsultaComercio(); 
      numero_prueba=60000; 
     } catch (Exception e) { } 
     // Dismiss the Dialog 
     pd.dismiss(); 
    } 
}.start(); 

答えて

1

どのスレッドからでもUIを更新することはできません。 AsyncTaskである必要があります。あなたのonCreateで

1

()、これを行う

Handler handler=new Handler() 
{ 

    public void handleMessage(Message msg) 
{ 
    if(pd.isShowing()) 
{ 
    pd.dismiss(); 
} 
}; 

と、このようなあなたのスレッドを変更、

Toast.makeText(getApplicationContext()、 "Cargando ...." + String.valueOf( numow_prueba)、Toast.LENGTH_SHORT).show();

 new Thread() { 
      public void run() { 
        try{ 
          // Do some Fake-Work 
        ConsultaComercio(); 
        numero_prueba=60000; 
        } catch (Exception e) { } 
        // Dismiss the Dialog 
       handler.sendEmptyMessage(0); 
      } 
     }.start(); 
関連する問題