我正在应用程序之外显示一个吐司。
我和Toast合作很好:
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秒的延迟时间没有影响。
那么我如何让Dialog在应用程序内外工作。
答案 0 :(得分:0)
您可能遗失()
。所以它就像是,
final Dialog dialog_edu = new Dialog(getBaseContext());
答案 1 :(得分:0)
使用getParent()而不是getBaseContext()。
否则,请使用如下。因为这个问题是一个时间问题。
Context context = getBaseContext(); 新的Dialog(上下文);
尝试以上两种方式。 : - )
答案 2 :(得分:0)
那么我如何让Dialog在应用程序内外工作。
您创建一个以对话为主题的活动。
您无法在具有任何旧上下文的活动之外显示标准对话框。虽然对话框构造函数只需要一个Context,但实际上它需要一个Activity,大概是为了将自己附加到Activity的窗口。 Toast没有此限制,因此您可以使用任何Context。