J'ai ajouté le code suivant pour afficher un Popover sur ma vue spinner. Le code utilise PopOver personnalisé qui étend popupWindow:
@Override
public void onStart() {
super.onStart();
new Handler().postDelayed(new Runnable() {
public void run() {
if (mActivity == null || !isAdded() || mActivity.isFinishing() || mSpinner == null) {
return;
}
displayPopOver();
}
}, 500L); // have seen BadTokenException if we try to show the popup too early
}
private void displayPopOver() {
//PopOver is a custom class that extends PopupWindow
PopOver p = PopOver.createVerticalPopOver(mActivity, PopOver.Type.TIP);
p.show(mSpinner);
}
Je ne peux pas reproduire l'accident, mais par des rapports d'erreur, je vois l'application se bloque plusieurs fois. Qu'est-ce que je fais mal? Peut-on appeler ce code dans onResume() au lieu de onStart()?
android.view.WindowManager $ BadTokenException: Impossible d'ajouter la fenêtre - null jeton est pas valide; Votre activité est-elle en cours? 1 à android.view.ViewRootImpl.setView (ViewRootImpl.java:532) 2 à android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:259) 3 à android.view.WindowManagerImpl.addView (WindowManagerImpl.java:69) 4 à android.widget.PopupWindow.invokePopup (PopupWindow.java:1019) 5 à android.widget.PopupWindow.showAtLocation (PopupWindow.java:850) 6 à android.widget.PopupWindow.showAtLocation (PopupWindow.java: 814) 7 à com.PopOver.show (PopOver.java:339) 8 à com.MainFragment.displayPopOver (MainFragment.java:515) 9 à com.MainFragment.access 1300 $ (MainFragment.java:73) 10 at com.MainFragment $ 5.run (MainFragment.java:497) 11 sur android.o s.Handler.handleCallback (Handler.java:733) 12 à android.os.Handler.dispatchMessage (Handler.java:95) 13 à android.os.Looper.loop (Looper.java:136) 14 à androïde .app.ActivityThread.main (ActivityThread.java:5001) 15 à java.lang.reflect.Method.invokeNative (Méthode native) 16 à java.lang.reflect.Method.invoke (Method.java:515) 17 à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:785) 18 à com.android.internal.os.ZygoteInit.main (ZygoteInit.java:601) 19 à dalvik.system.NativeStart .main (méthode native)
moyens pop-up est plus Spinner ou activité? –
La popup est sur spinner –
où vous créez spinner –