Android-getBaseContext使用Toast vs.Dialog
我在应用程序外展示祝酒词 我用吐司做的很好:Android-getBaseContext使用Toast vs.Dialog,android,android-dialog,android-toast,Android,Android Dialog,Android Toast,我在应用程序外展示祝酒词 我用吐司做的很好: Toast.makeText(getBaseContext(),"Text").show(); 但是当我尝试使用Dialog时,我返回一个 final Dialog dialog_edu = new Dialog(getBaseContext()); dialog_edu.setTitle("Choose Action"); dialog_edu.show(); 它返回以下内容:
Toast.makeText(getBaseContext(),"Text").show();
但是当我尝试使用Dialog时,我返回一个
final Dialog dialog_edu = new Dialog(getBaseContext());
dialog_edu.setTitle("Choose Action");
dialog_edu.show();
它返回以下内容:
01-28 18:02:04.734: W/WindowManager(329): Attempted to add window with non-application token WindowToken{41c01dd8 token=null}. Aborting.
01-28 18:02:04.734: E/AndroidRuntime(2626): FATAL EXCEPTION: main
01-28 18:02:04.734: E/AndroidRuntime(2626): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
如果我在上下文中使用“MyAcitivity.this”,它在应用程序中起作用,但在我离开应用程序时不起作用。另一方面,Toast在应用程序内部和外部工作
我已经读到,您可以使用:getActivity()和其他,但在当前状态下,它返回相同的错误
如果我使用一个处理程序并尝试延迟对话框的构建,它在1整秒的延迟时间内没有任何效果
那么,如何让对话框在应用程序内外工作。您可能缺少
()
。那就是,
final Dialog dialog_edu = new Dialog(getBaseContext());
使用getParent()而不是getBaseContext()
否则,请按以下方式使用。因为这个问题是时间问题
Context=getBaseContext();
新对话(上下文)
尝试以上两种方法::-)
那么,如何让对话框在应用程序内外工作呢
您可以创建一个以对话框为主题的活动
不能在具有任何旧上下文的活动之外显示标准对话框。尽管对话框构造函数只需要一个上下文,但它实际上需要一个活动,可能是为了将自己附加到活动的窗口。Toast没有此限制,因此您可以使用任何上下文。可能重复的“我会说不”-我已经阅读了该线程。他的问题要简单得多——我试图在应用程序之外显示一个对话框。还有,人们在这里建议的所有东西对我在LogCat中得到的错误没有影响。你不能在没有窗口的地方显示对话框:@zapl你能解释一下我的问题吗,如何从我的状态继续?如果您在
应用程序
或服务
中,并且希望显示对话框,则必须启动显示该对话框的活动。另一方面,这也不好,因为你可以用这种方式打断用户,因为即使用户已经离开你的应用程序并正在做其他事情(例如来电),活动也会显示出来。不,这是我在帖子中的错误。我会改变的。