如果没有连接,我只想在屏幕上打印警报。
以下是我在课堂上所做的扩展活动的内容。
if(isOnline()) {
// do stuff..
} else {
Builder builder = new AlertDialog.Builder(getApplicationContext());
builder.setMessage("No connection.");
builder.setCancelable(true);
AlertDialog dialog = builder.create();
dialog.show();
}
然后我尝试使用Debug启动它,并收到以下错误:
android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序
答案 0 :(得分:4)
使用
Builder builder = new AlertDialog.Builder(Your_Current_Activity.this);
而不是
Builder builder = new AlertDialog.Builder(getApplicationContext());
因为您需要传递当前活动上下文以显示AlertDialog
而不是应用程序上下文
答案 1 :(得分:3)
替换
行Builder builder = new AlertDialog.Builder(getApplicationContext());
与
Builder builder = new AlertDialog.Builder(YourActivityName.this);
由于您可能需要活动上下文而非应用程序上下文。
希望它有所帮助。
答案 2 :(得分:1)
使用yourActivityName.this
代替getApplicationContext()
;
答案 3 :(得分: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();
}