Log Error android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an app
今天给删除收货地址写AlertDialog的时候 ,无论怎么样 都是 不能Create ,我是把AlertDialog 写在Adapter里面了 而且上下文mContext已经传过来了 ,后来百度了。
解决办法 在Activity new Adapter 传上下文的时候用 Activity.this 作为上下文 不要用 getApplication() 作为上下文 这样就可以了
如果你把AlerDialog写在Activity上 也要用 Activity.this 作为上下文。。。。。
AlertDialog.Builder builder = new AlertDialog.Builder(mContext); builder.setTitle("提示信息"); builder.setMessage("您确定取删除收货地址吗?"); builder.setIcon(R.drawable.ic_launcher); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { delAddress(mDatas.get(position).getAddressId()); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); Dialog alertDialog = builder.create(); alertDialog.show();
http://blog.csdn.net/yimo29/article/details/6004782
在Activity中newSpinner是我把mContext传入,但是出了Android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application这个错误,参考了达人的文章终于搞定。
导致报这个错是在于new AlertDialog.Builder(mcontext),虽然这里的参数是AlertDialog.Builder(Context context)但我们不能使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。
解决方法:将new AlertDialog.Builder(Context context)中的参数用Activity.this(Activity是你的Activity的名称)来填充就可以正确的创建一个Dialog了。