`

android.view.WindowManager$BadTokenException: Unable to add window — token null

阅读更多
错误产生:
private Context mcontext;

	@Override
	protected void onCreate(Bundle savedInstanceState) {mcontext = getApplicationContext();
		System.out.println("mcontext=" + mcontext);

	}

	new AlertDialog.Builder(mcontext)
				.setIcon(android.R.drawable.ic_dialog_alert)
				.setTitle("Warnning")
				.setMessage(
						"You forget to write the message. Do you want to fill out it ??")
				.setPositiveButton("Yes", positiveListener).setNegativeButton(
						"No", negativeListener).create().show();


导致报这个错是在于new AlertDialog.Builder(mcontext),虽然这里的参数是AlertDialog.Builder(Context context)但我们不能使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。

解决方法:将new AlertDialog.Builder(Context context)中的参数用Activity.this(Activity是你的Activity的名称)来填充就可以正确的创建一个Dialog了。
new AlertDialog.Builder(MyActivity.this)
				.setIcon(android.R.drawable.ic_dialog_alert)
				.setTitle("Warnning")
				.setMessage(
						"You forget to write the message. Do you want to fill out it ??")
				.setPositiveButton("Yes", positiveListener).setNegativeButton(
						"No", negativeListener).create().show();


分享到:
评论
9 楼 twlkyao 2014-02-20  
问题解决,谢谢。
8 楼 unknown-after 2013-04-19  
谢了,问题解决了
7 楼 大板砖 2012-03-14  
感谢你的分享,使我纠正了技术上的误解,看来不能一味的用getApplicationContext这个方法,再次感谢
6 楼 wisdom8848 2011-12-20  
[color=brown][/color]阿什顿飞
5 楼 byandby 2011-08-16  
追求幸福 写道
byandby 写道
弹窗 操作 如果 在 Activity  启动 之后 可以这样做, 要是 这个 Activity 还没启动 ,  就不可以这样  操作了。

啥意思?

又 Google到你这篇文章了,弹窗操作如果 在其它的类里边 比如随便一个View里边,不是在Activity里边  应该是不可以 这样操作的。 
4 楼 追求幸福 2011-07-14  
byandby 写道
弹窗 操作 如果 在 Activity  启动 之后 可以这样做, 要是 这个 Activity 还没启动 ,  就不可以这样  操作了。

啥意思?
3 楼 byandby 2011-07-12  
弹窗 操作 如果 在 Activity  启动 之后 可以这样做, 要是 这个 Activity 还没启动 ,  就不可以这样  操作了。
2 楼 byandby 2011-07-12  
    so  good
1 楼 jelver 2010-10-31  
,thanks

相关推荐

    android dialog与popwindow之间的简单运用

    注意:PopupWindow组件的使用问题,PopupWindow是一个阻塞对话框,如果你直接在Activity创建的方法中显示它,则会报错:android.view.WindowManager$BadTokenException:Unable to add window -- token null is not ...

    Android 中 android.view.WindowLeaked的解决办法

    Android 中 android.view.WindowLeaked的解决办法 按字面了解,Window Leaked大概就是说一个窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏呢? 产生原因: 我们知道Android的每一个Activity都有个...

    android13 WindowManager-Shell.jar

    android13 WindowManager-Shell.jar

    Android开发解决popupWindow重叠报错问题

    ERROR/AndroidRuntime(888): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRoot$W@44ef1b68 is not valid; is your activity running? 报错的意思大概就是说...

    log的方法分析

    05-07 10:22:50.670: E/AndroidRuntime(22902): android.view.WindowManager$BadTokenException: Unable to add window -- token null is invalid; is your activity running? ``` **解决方法**: - 确保在Activity...

    WindowManager属性详解

    WindowManager属性详解:WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;继承于 ViewGroup.LayoutParams 。 它的内容十分丰富。其实WindowManager.java的主要内容就是由这个类定义构成。

    Android悬浮框权限判断WindowManager

    在Android系统中,"悬浮框权限",也称为"悬浮窗权限"或"显示于其他应用上方的权限",是自Android 6.0(API级别23)引入的一项安全特性。这种权限允许应用程序在用户界面的顶层创建窗口,比如我们常见的悬浮通知、小...

    Android Rreact Native 常见错误总结

    3.android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 这个错误属于安卓 Native 的错误。该错误通常是因为 Activity 不存在或者已经销毁...

    android 采用windowmanager屏蔽home键

    在Android系统中,Home键是默认行为,允许用户随时返回主屏幕或切换到其他应用程序。然而,有时开发者可能需要在特定场景下禁用Home键,例如在全屏游戏或者某个重要操作过程中,确保用户不会意外退出。这通常通过`...

    Android 利用WindowManager实现悬浮窗 demo

    在Android开发中,实现类似QQ视频那样的悬浮窗功能,需要用到`WindowManager`接口。`WindowManager`是Android系统服务之一,它允许应用管理窗口并控制它们在屏幕上的位置和显示方式。本篇将深入探讨如何利用`...

    WindowManager.addView()实现悬浮窗口播放视频

    View videoViewLayout = inflater.inflate(R.layout.layout_video_view, null); VideoView videoView = videoViewLayout.findViewById(R.id.videoView); videoView.setVideoURI(Uri.parse("你的视频路径")); ...

    Android悬浮窗实现 使用WindowManager Demo

    在Android应用开发中,有时我们需要实现一种特殊的功能,即悬浮窗(Floating Window),它可以在其他应用之上显示,常用于提供快捷操作或者实时信息提示。本教程将深入讲解如何使用`WindowManager`服务来创建和管理...

    WindowManager弹窗

    View view = inflater.inflate(R.layout.popup_window, null); // 设置LayoutParams WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); layoutParams.type = WindowManager....

    Android之泡泡效果bubble.rar

    import android.view.WindowManager; import android.view.View.OnTouchListener; import android.widget.FrameLayout; import android.widget.ImageView; public class BubbleExplosion extends Activity { ...

    Android 实现在所有应用上显示View

    在Android开发中,实现“在所有应用上显示View”通常涉及到系统级插件化或Overlay技术,这是一种高级的Android编程技巧,它允许开发者在任何已安装的应用之上添加自定义的UI元素。这样的功能常见于一些浮动小部件、...

    android 飘窗

    在Android开发中,"飘窗"通常指的是悬浮窗口或者弹出窗口,它们是应用程序为了提供额外信息或功能而设计的一种用户界面元素。这种类型的窗口可以在主应用界面之上显示,允许用户在不离开当前活动的情况下与之交互。...

    Android利用WindowManager实现悬浮窗

    Android悬浮窗实现原理和WindowManager详解 Android悬浮窗是指在Android系统中,可以悬浮在屏幕上的一种窗口,常见于QQ视频、手机杀毒软件的桌面小助手等应用中。要实现悬浮窗,需要使用WindowManager来管理窗口。...

    ScreenShotSample_android截屏_DEMO_android截屏demo_

    在Android平台上,截屏功能是用户与应用交互过程中的一个重要组成部分。`ScreenShotSample_android截屏_DEMO_android截屏demo` 提供了一个Android客户端实现截屏服务的示例项目,帮助开发者了解如何在应用程序中集成...

    Android 设置应用全屏的两种解决方法

    在开发中我们经常需要把我们的应用设置为全屏,有两种方法... import android.view.Window; import android.view.WindowManager; public class OpenGl_Lesson1 extends Activity { public void onCreate(Bundle sa

    android 悬浮窗

    View floatView = inflater.inflate(R.layout.float_window, null); WindowManager.LayoutParams params = new WindowManager.LayoutParams(); params.type = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ?...

Global site tag (gtag.js) - Google Analytics