Bad window token, you cannot show a dialog before an Activity is created or after it#39;s hidden(错误的窗口令牌,您无法在创建 Activity 之前或隐藏之后显示对话框)
问题描述
我在我的应用程序中使用 AppIntro 库.
I am using an AppIntro library in my app.
它有 3 张幻灯片.当显示第三张幻灯片时,我想问用户一些事情.为了实现这一点,我正在使用 afollestad 的材质对话框.
It has 3 slides. I want to ask the user something when the third slide is shown. To achieve that I am using material dialogs by afollestad.
我在 AppIntro Activity 中的代码如下所示:
My code in the AppIntro Activity looks like that:
@Override
public void onNextPressed() {
if(this.pager.getCurrentItem() == 2) {
MaterialDialog dialog = new MaterialDialog.Builder(getApplicationContext())
.title("QR Code scannen")
.content("Möchtest du den QR Code scannen oder selbst eingeben?")
.positiveText("eingeben")
.negativeText("scannen")
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
Intent intent = new Intent(getApplicationContext(), RegistrationActivity.class);
startActivity(intent);
}
})
.onNegative(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
// TODO
}
})
.show();
}
}
运行应用程序当我滑到第三张幻灯片时出现以下问题:
Running the App I get the following issue when I slide to the third slide:
com.afollestad.materialdialogs.MaterialDialog$DialogException:
Bad window token, you cannot show a dialog before an Activity is created or after it's hidden.
at com.afollestad.materialdialogs.MaterialDialog.show(MaterialDialog.java:1328)
at com.afollestad.materialdialogs.MaterialDialog$Builder.show(MaterialDialog.java:1317)
at com.ads.adstimer.fragment.Registration.RegistrationActivity.onNextPressed(RegistrationActivity.java:64)
at com.github.paolorotolo.appintro.AppIntro$2.onClick(AppIntro.java:118)
at android.view.View.performClick(View.java:5204)
at android.view.View$PerformClick.run(View.java:21153)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
我真的不明白这个问题.因为 AppIntro Activity 已经加载,我希望它在显示特定片段时显示一个对话框.
I do not really understand the problem. Because the AppIntro Activity is already loaded and I expect it to show a dialog when a specific fragment is shown.
如何实现在显示特定幻灯片时显示对话框?
How can I achieve to show a dialog when a specific slide is shown?
推荐答案
MaterialDialog dialog = new MaterialDialog.Builder(getApplicationContext())
我想你需要在这里传递 Activity
实例,而不是应用程序上下文.
I suppose you need to pass the Activity
instance here, not the application context.
这篇关于错误的窗口令牌,您无法在创建 Activity 之前或隐藏之后显示对话框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:错误的窗口令牌,您无法在创建 Activity 之前或隐藏之后显示对话框
基础教程推荐
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01