Unable to add window -- token null is not for an application
代码中出现如下错误:
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
分析:
问题在于new AlertDialog.Builder(Context),虽然这里的参数是AlertDialog.Builder(Context context)
但我们不能使用getApplicationContext()获得的Context,而必须使用Activity的Context对象,因为只有一个Activity才能添加一个窗体。
解决方法:
将new AlertDialog.Builder(Context context)中的参数用Activity的Context对象即可
弹出确认框
new AlertDialog.Builder(MainActivity.this) .setTitle(R.string.confirm_title) .setMessage(R.string.confirm_content) .setPositiveButton(R.string.confirm_ok, new OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int arg1) { dialogInterface.dismiss(); masterClear(getApplicationContext()); } }) .setNegativeButton(R.string.confirm_cancel, new OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int arg1) { dialogInterface.cancel(); } }).show();