1

接続がない場合、画面にアラートを表示したいだけです。

これが、アクティビティを拡張するクラスで行ったことです。

if(isOnline()) { 
    // do stuff..
} else {
    Builder builder =  new AlertDialog.Builder(getApplicationContext());
    builder.setMessage("No connection.");
    builder.setCancelable(true);
    AlertDialog dialog = builder.create();
    dialog.show();
}

次に、デバッグで起動しようとしましたが、次のエラーが発生しました。

android.view.WindowManager$BadTokenException: ウィンドウを追加できません -- トークン null はアプリケーション用ではありません

4

4 に答える 4

4

使用する

 Builder builder =  new AlertDialog.Builder(Your_Current_Activity.this);

それ以外の

 Builder builder =  new AlertDialog.Builder(getApplicationContext());

AlertDialogApplication Context の代わりにCurrent Activity Context を渡して表示する必要があるためです

于 2013-01-30T12:34:11.140 に答える
3

ラインを交換する

Builder builder =  new AlertDialog.Builder(getApplicationContext());

Builder builder =  new AlertDialog.Builder(YourActivityName.this);

Application Contextの代わりにActivity Contextが必要になる場合があるためです。

それが役に立てば幸い。

于 2013-05-27T03:41:58.293 に答える
1

yourActivityName.thisの代わりに使用しgetApplicationContext()ます。

于 2013-01-30T12:33:40.470 に答える
1

classname.thisこれ以外を使用しようとするとgetApplicationContext()、問題が発生することがあります

if(isOnline()) { 
    // do stuff..
} else {
    Builder builder =  new AlertDialog.Builder(getApplicationContext());
    builder.setMessage("No connection.");
    builder.setCancelable(true);
    AlertDialog dialog = builder.create();
    dialog.show();
}
于 2013-01-30T12:33:57.303 に答える