Comment montrer la boîte de dialogue de la classe qui étend l'application dans android?
Je veux afficher une boîte de dialogue après la condition spécifique , mais pour la démo dès maintenant je veux afficher une Boîte de Dialogue à partir de la classe qui étend le champ d'Application .
voici mon code
public class ControlApplication extends Application
{
@Override
{
super.onCreate();
final Dialog dialog = new Dialog ( getApplicationContext() );
dialog.setTitle("zakasssssssssssssssssss");
dialog.setCancelable(false);
dialog.show();
}
}
mais à la boîte de dialogue.show() j'obtiens le message d'erreur tel que
Attempted to add window with non-application token WindowToken{4067a268 token=null}. Aborting.
D/AndroidRuntime( 1923): Shutting down VM
W/dalvikvm( 1923): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime( 1923): FATAL EXCEPTION: main
E/AndroidRuntime( 1923): java.lang.RuntimeException: Unable to create application
com.test.shrenik.ControlApplication: android.view.WindowManager$BadTokenException:
Unable to add window -- token null is not for an application
E/AndroidRuntime( 1923): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3275)
E/AndroidRuntime( 1923): at android.app.ActivityThread.access$2200(ActivityThread.java:117)
E/AndroidRuntime( 1923): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
E/AndroidRuntime( 1923): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1923): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 1923): at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime( 1923): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1923): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime( 1923): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime( 1923): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime( 1923): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1923): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
E/AndroidRuntime( 1923): at android.view.ViewRoot.setView(ViewRoot.java:531)
E/AndroidRuntime( 1923): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
E/AndroidRuntime( 1923): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
E/AndroidRuntime( 1923): at android.app.Dialog.show(Dialog.java:241)
E/AndroidRuntime( 1923): at com.andromeda.ui.pandora.ControlApplication.onCreate(ControlApplication.java:38)
E/AndroidRuntime( 1923): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
E/AndroidRuntime( 1923): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
E/AndroidRuntime( 1923): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3272)
E/AndroidRuntime( 1923): ... 10 more
quelqu'un peut-il suggérer une solution ?
source d'informationauteur shankey
Vous devez vous connecter pour publier un commentaire.
Votre programme peut se comporter comme vous le souhaitez!**
** Rappelez-vous juste que vous avez besoin de réfléchir aux conséquences de ses actions.
importations pour abowe:
edity:
** u peut utiliser le contexte de l'application pour créer une boîte de dialogue en ajoutant avant l'appel à la boîte de Dialogue.show();
Ref:
Vous ne pouvez pas utiliser une application [ou] contexte. Si vous voulez vraiment vous montrer diallog à partir d'une application, vous aurez à passer un contexte d'Activité. Vous pouvez également stocker le contexte d'Activité, mais je ne pas recommandons. Le contexte d'activité est annulée à la fin, de sorte que vous casserez votre programme. @LeoLink dit, il suffit d'appeler directement à partir de votre Activité.
MODIFIER Par Exemple
La classe Application est là pour contenir les données qui peuvent être utilisés par vos activités, de ne pas interagir avec l'INTERFACE utilisateur. Afficher la boîte de dialogue de l'activité que vous souhaitez qu'il s'affiche sous.
EDIT: Si vous voulez appeler le code à partir de plusieurs activités, vous pouvez avoir un super-classe pour ces activités, qui contiennent le code de la boîte de dialogue. Puis étendre cette super-classe de toutes les activités que vous voulez afficher la boîte de dialogue, et de l'appeler à partir de là.