MBwork Posté(e) 8 mai 2015 Share Posté(e) 8 mai 2015 (modifié) Bonjour, Après plusieurs recherche, je n'arrive pas a comprendre pourquoi mon setText marche des fois et des fois pas... :rolleyes: dans mon activity je fait appel a un Timer pour mettre à jour toutes les secondes un textView suite à l'appel d'un WS (pour avoir la donnée en temps réel) (mon timer se lance onResume, et se cancel OnPause) le callback de ma TimerTask est la méthode suivante : public void setNbVisitorTexte(int nbVisitor){ System.out.println("nb : "+nbVisitor); int index = mViewPager.getCurrentItem(); View view = mViewPager.getChildAt(index); System.out.println(" index : "+index); System.out.println(" vue : "+view); //pas de mise à jour sur le dernier fragment //pas de mise à jour tant que la vue du fragment n'a pas encore été créee (Fragment LifeCycle) if(index!=ID_FRAG_ABOUT && view!=null) { TextView nbVisiteur = (TextView) view.findViewById(R.id.txtV_NBvisitors); System.out.println(" txtV : "+nbVisiteur); if (nbVisiteur!=null) { //le text view a-t-il été trouvé String val = String.valueOf(nbVisitor); nbVisiteur.setText(val); System.out.println(" in IF update "+val); } } ce textView txtV_NBvisitors est inclu dans 3 de mes 4 fragments qui sont géré par FragmentPagerAdapter (proposition par defaut des tabbed Activity de Android Studio) J'avais plusieurs fois des null pointeur Exeption étant donné que mon activity ne trouvais pas encore la vue du fragment lors que le timer voulant mettre a jour à chaque seconde se lançait avant que le fragment.OnCreateView ai été applé (enfin je crois que c'est pour cela) J'ai pas très envie de déporter le timer au niveau des mes fragments car je voudrais pour l'instant que le code reste simple à lire donc j'ai "résolu" ce soucis en ne mettant pas a jour l'interface pendant ces "secondes" là puisque de toute façon l'oppération sera retenté à la prochaine seconde. Pourtant en navigant entre mes fragements lorsque je teste l'application, mon txtV_NBvisitors ne se met pas toujours à jour malgrès que les log indiquent : 05-08 04:06:29.279 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 21 05-08 04:06:29.279 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 0 05-08 04:06:29.279 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52dd97a4 V.E..... ......I. 0,0-1080,1677} 05-08 04:06:29.279 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52de3270 V.ED.... ........ 438,193-546,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:06:29.279 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 21 --> arrvié sur le fragment 0 : mise à jour OK affiche bien 21 05-08 04:07:14.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 21 05-08 04:07:14.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 1 05-08 04:07:14.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52dfc05c V.E..... ........ 1080,0-2160,1677} 05-08 04:07:14.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52df7948 V.ED.... ........ 438,193-546,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:07:14.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 21 --> passe au fragment 1 : mise à jour OK affiche bien 21 05-08 04:07:15.215 3548-3565/work.mariebarbier.legovisitorfrag I/System.out﹕ +2 05-08 04:07:15.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 23 05-08 04:07:15.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 1 05-08 04:07:15.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52dfc05c V.E..... ........ 1080,0-2160,1677} 05-08 04:07:15.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52df7948 V.ED.... ........ 384,193-600,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:07:15.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 23 --> ajout 2 a la valeur : mise à jour OK affiche bien 23 05-08 04:07:16.079 3548-3568/work.mariebarbier.legovisitorfrag I/System.out﹕ +3 05-08 04:07:16.451 3548-3562/work.mariebarbier.legovisitorfrag D/dalvikvm﹕ GC_FOR_ALLOC freed 462K, 4% free 16842K/17372K, paused 3ms, total 3ms 05-08 04:07:16.451 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 26 05-08 04:07:16.451 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 1 05-08 04:07:16.451 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52dfc05c V.E..... ........ 1080,0-2160,1677} 05-08 04:07:16.451 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52df7948 V.ED.... ........ 384,193-600,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:07:16.451 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 26 --> ajout 3 a la valeur : mise à jour OK affiche bien 26 05-08 04:07:16.895 3548-3564/work.mariebarbier.legovisitorfrag I/System.out﹕ +5 05-08 04:07:17.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 31 05-08 04:07:17.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 1 05-08 04:07:17.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52dfc05c V.E..... ........ 1080,0-2160,1677} 05-08 04:07:17.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52df7948 V.ED.... ........ 384,193-600,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:07:17.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 31 --> ajout 5 a la valeur : mise à jour OK affiche bien 31 05-08 04:07:18.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 31 05-08 04:07:18.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 2 05-08 04:07:18.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52e09efc V.E..... ........ 2160,0-3240,1677} 05-08 04:07:18.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52df0e94 V.ED.... ........ 438,193-546,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:07:18.443 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 31 --> passe au fragment 2 : mise à jour OK affiche bien 31 05-08 04:07:19.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 31 05-08 04:07:19.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 2 05-08 04:07:19.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52e25c70 V.E..... ......ID 3240,0-4320,1677} 05-08 04:07:19.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : null --> ici on a perdu le textview ??? oO? (surement à cause de la navigation entre les fragment?) bref pas de mise a jour, on verra ca à la prochaine seconde 05-08 04:07:20.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 31 05-08 04:07:20.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 1 05-08 04:07:20.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52e09efc V.E..... ........ 2160,0-3240,1677} 05-08 04:07:20.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52df0e94 V.ED.... ........ 384,193-600,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:07:20.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 31 --> passe au fragment 1 : mise à jour OK affiche bien 31 05-08 04:07:22.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 31 05-08 04:07:22.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 1 05-08 04:07:22.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52e09efc V.E..... ......ID 2160,0-3240,1677} 05-08 04:07:22.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52df0e94 V.ED.... ......ID 384,193-600,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:07:22.447 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 31 05-08 04:07:23.455 3548-3566/work.mariebarbier.legovisitorfrag D/dalvikvm﹕ GC_FOR_ALLOC freed 504K, 4% free 16848K/17412K, paused 3ms, total 5ms 05-08 04:07:23.455 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ nb : 31 05-08 04:07:23.455 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ index : 0 05-08 04:07:23.455 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ vue : android.support.v4.app.NoSaveStateFrameLayout{52dfc05c V.E..... ........ 1080,0-2160,1677} 05-08 04:07:23.455 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ txtV : android.widget.TextView{52df7948 V.ED.... ........ 384,193-600,448 #7f08005a app:id/txtV_NBvisitors} 05-08 04:07:23.455 3548-3548/work.mariebarbier.legovisitorfrag I/System.out﹕ in IF update 31 --> le fragment index 0 affiche maintenant 0 dans le text view alors que le log indique que la valeur passé au texte view est bien 31... Avez-vous une idée? est-il question de refaire un setContent après un inflate? car là je suis complètement perdu sur cette anomalie intermittente... est-ce à cause de la ligne : 05-08 04:07:23.455 3548-3566/work.mariebarbier.legovisitorfrag D/dalvikvm﹕ GC_FOR_ALLOC freed 504K, 4% free 16848K/17412K, paused 3ms, total 5ms je ne comprend pas ce qu'elle signifie Merci d'avance Modifié 8 mai 2015 par MBwork Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.