Ich verwende eine AppIntro library in meiner App.Schlechte Fenster-Token, Sie können keinen Dialog anzeigen, bevor eine Aktivität erstellt oder nachdem sie ausgeblendet wird
Es hat 3 Dias. Ich möchte den Benutzer etwas fragen, wenn die dritte Folie angezeigt wird. Um das zu erreichen, verwende ich material dialogs by afollestad.
Mein Code in der AppIntro Aktivität sieht wie folgt aus:
@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();
}
}
Ausführen der App ich folgendes Problem, wenn ich mit dem dritten Schlitten gleiten:
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)
Ich verstehe nicht wirklich die Problem. Da die AppIntro-Aktivität bereits geladen ist und ich erwarte, dass ein Dialog angezeigt wird, wenn ein bestimmtes Fragment angezeigt wird.
Wie kann ich erreichen, dass ein Dialogfeld angezeigt wird, wenn eine bestimmte Folie angezeigt wird?
Check http: // Stackoverflow .com/a/2899630/2015538 – nbaroz