IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Bug ViewPager & PageAdapter


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 87
    Points
    87
    Par défaut Bug ViewPager & PageAdapter
    Bonjour,


    J'utilise un ViewPager avec un TabHost et de façon un peu aléatoire (ou alors je n'ai pas encore repéré la logique), quand je navigue entre les Tab, mon application crash avec le message d'erreur suivant dans le LogCat.

    En cherchant un peu, j'ai trouvé sur SOF le thread suivant qui propose d'overrider une méthode de son PageAdapter ...

    Le problème c'est que j'utilise un FragmentPageAdapter et visiblement la méthode en question n'existe pas ...

    Quelqu'un peut-il m'aider ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    10-23 12:12:57.003: E/AndroidRuntime(16732): FATAL EXCEPTION: main
    10-23 12:12:57.003: E/AndroidRuntime(16732): java.lang.IllegalArgumentException: The observer is null.
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.database.Observable.unregisterObserver(Observable.java:64)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.widget.BaseAdapter.unregisterDataSetObserver(BaseAdapter.java:42)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.widget.HeaderViewListAdapter.unregisterDataSetObserver(HeaderViewListAdapter.java:256)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.widget.AbsListView.onDetachedFromWindow(AbsListView.java:2714)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.View.dispatchDetachedFromWindow(View.java:11789)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2534)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2532)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2532)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2532)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3651)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3626)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.ViewGroup.removeView(ViewGroup.java:3558)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:999)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.app.FragmentManagerImpl.detachFragment(FragmentManager.java:1233)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:620)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.view.ViewPager.populate(ViewPager.java:895)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:469)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:441)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:422)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at com.dvectors.mobile.android.activity.MainActivity.onTabChanged(MainActivity.java:389)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.widget.TabHost.invokeOnTabChangeListener(TabHost.java:391)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.widget.TabHost.setCurrentTab(TabHost.java:376)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:150)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:546)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.View.performClick(View.java:4084)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.view.View$PerformClick.run(View.java:16966)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.os.Handler.handleCallback(Handler.java:615)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.os.Handler.dispatchMessage(Handler.java:92)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.os.Looper.loop(Looper.java:137)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at android.app.ActivityThread.main(ActivityThread.java:4745)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at java.lang.reflect.Method.invokeNative(Native Method)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at java.lang.reflect.Method.invoke(Method.java:511)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    10-23 12:12:57.003: E/AndroidRuntime(16732): 	at dalvik.system.NativeStart.main(Native Method)

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    java.lang.IllegalArgumentException: The observer is null.

    Si tu l'as dans la 4.0.3 mais pas la 4.0.1

    le code source de la 4.0.3

    http://grepcode.com/file/repository....erAdapter.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    279 void registerDataSetObserver(DataSetObserver observer) {
    280        mObservable.registerObserver(observer);
    281    }
    le code source de la 4.0.1

    http://grepcode.com/file/repository....a#PagerAdapter
    Donc tu peux la surcharger
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo