2011-08-14 23 views
0

私はアンドロイドアプリケーションで簡単なProgressDialogを宣言しましたが、表示されません。ここに私のインスタンスがあります:ProgressDialogが表示されない

ProgressDialog pDialog = new ProgressDialog(MyActivity.this, ProgressDialog.STYLE_SPINNER); 
pDialog.setMessage("Logging in..."); 
pDialog.show(); 

私はAndroidの開発にはかなり新しいですが、Javaではなく、誰かが私が間違っているかもしれない何かを見ますか?

UPDATEは
それは、ダイアログを閉じることになっているブロックに、奇妙な、私はコンテンツビュースイッチを持っている、と私は解雇をコメントアウトした場合、ダイアログは、実際にコンテンツスイッチの後表示されます。ここにはブロックがあります:

if(writeSuccess){ 
    Toast.makeText(getApplicationContext(), "Login Success!", Toast.LENGTH_SHORT).show(); 
    pDialog.dismiss(); 
    setContentView(R.layout.auth); 
} 
+0

あなたはいくつかのコードを表示できますか(このコードはどこにありますか...)? – MByD

+0

メインアクティビティクラス – nkcmr

+0

の直下にある 'public'承認メソッドに位置しています。地理的位置があまり役に立たないでしょう:)メインスレッドで実行されていますか?それはループで実行されていますか? – MByD

答えて

1

このようにする必要があります。

ProgressDialog pDialog = ProgressDialog.show(MyActivity.this, "MY Dialog", "Please wait..."); 

この1行でも、ProgressDialogが表示されます。

0

getApplicationContext()でMyActivity.thisを置き換えてみてください。それでも問題が解決しない場合は、ダイアログを開くときにログカットに何か表示されますか?

+0

'getApplicationContext()'メソッドを通して私のアプリケーションを参照すると、実際には致命的な例外がスローされます。 'ProgressDialog'を表示しようとすると' IllegalStateException'がスローされます。 – nkcmr

1

このコードがMyActivityクラス内にない場合、MyActivity.thisは解決できません。

また、あなたはonCreateがあなたの活動に呼び出されている前にダイアログを作成しようとしている場合つまり、その後、あなたのコンテキストの参照(MyActivity.this)が無効になり、progress dialogsを作成するための適切なcontextを必要としています。