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

Android Discussion :

[Débutant] Problème basique avec tabhost et tabwidget sur target <> 1.6


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Par défaut [Débutant] Problème basique avec tabhost et tabwidget sur target <> 1.6
    Bonjour à tous,
    j'ai un problème de base avec l'utilisation d'un tabhost et d'un tabwidget :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    <?xml version="1.0" encoding="utf-8"?>
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    	android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
            </TabWidget>
    </TabHost>
    provoque une "NullPointerException : null" directement dans le concepteur.
    voici la console :

    java.lang.NullPointerException
    at android.widget.TabWidget.initTabWidget(TabWidget.java:115)
    at android.widget.TabWidget.<init>(TabWidget.java:86)
    at android.widget.TabWidget.<init>(TabWidget.java:69)
    at sun.reflect.GeneratedConstructorAccessor26.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
    at android.view.LayoutInflater.createView(LayoutInflater.java:500)
    at android.view.BridgeInflater.onCreateView(BridgeInflater.java:77)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:122)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:296)
    at com.android.layoutlib.bridge.Bridge.computeLayout(Bridge.java:397)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle1.GraphicalLayoutEditor.computeLayout(Unknown Source)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle1.GraphicalLayoutEditor.recomputeLayout(Unknown Source)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle1.GraphicalLayoutEditor.activated(Unknown Source)
    at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(Unknown Source)
    at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:291)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1200)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1185)
    at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1025)
    at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3256)
    at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:2045)
    at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:323)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3493)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3112)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1311)

    A l'execution c'est lors du setup du tabhost que ça plante.

    Si je ne "pose" pas de tabwidget, j'ai un message qui me dit en gros qu'il faut un tabwidget avec un id = "android:id/tabs" auquel je me suis permi d'ajouter un "@".

    merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    Je débutes aussi, mais essaye avec:
    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
     
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    	android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="10dp">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
            <FrameLayout android:id="@android:id/tabcontent"
         		android:layout_width="fill_parent"
         		android:layout_height="fill_parent">
    			<LinearLayout android:id="@+id/tab1" 
    				android:orientation="vertical"
    				android:layout_width="fill_parent" 
    				android:layout_height="fill_parent" />
    			<LinearLayout android:id="@+id/tab2" 
    				android:orientation="vertical"
    				android:layout_width="fill_parent" 
    				android:layout_height="fill_parent" />
    			<LinearLayout android:id="@+id/tab3" 
    				android:orientation="vertical"
    				android:layout_width="fill_parent" 
    				android:layout_height="fill_parent" />
    		</FrameLayout>
        </LinearLayout>
    </TabHost>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Par défaut
    merci de ta réponse, même problème

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Par défaut
    J'avais le problème sur linux, je l'ai vérifié maintenant sous windows avec la dernière version du sdk et eclipse 3.5.2...

    En important un projet dont la cible est le systeme 1.6, je n'ai pas le problème, par contre quand je change la cible en 1.5, 2.0, 2.2 le problème survient.

    Le TABHOST ne marche qu'en 1.6 ????

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    Non moi j'ai fait mon HelloTab avec 2.2...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Par défaut
    Bah chez moi, ça ne marche qu'en 1.6, que ce soit sous windows ou linux, je vais creuser un peu...

    Merci Asnidren

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Par défaut
    Pour faire simple :
    si je prends le code de Asnidren :

    Citation Envoyé par Asnidren Voir le message
    Je débutes aussi, mais essaye avec:
    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
     
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    	android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="10dp">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
            <FrameLayout android:id="@android:id/tabcontent"
         		android:layout_width="fill_parent"
         		android:layout_height="fill_parent">
    			<LinearLayout android:id="@+id/tab1" 
    				android:orientation="vertical"
    				android:layout_width="fill_parent" 
    				android:layout_height="fill_parent" />
    			<LinearLayout android:id="@+id/tab2" 
    				android:orientation="vertical"
    				android:layout_width="fill_parent" 
    				android:layout_height="fill_parent" />
    			<LinearLayout android:id="@+id/tab3" 
    				android:orientation="vertical"
    				android:layout_width="fill_parent" 
    				android:layout_height="fill_parent" />
    		</FrameLayout>
        </LinearLayout>
    </TabHost>
    que je le colle directement dans ce que j'appelle la fenêtre source du concepteur wysiwyg d'eclipse, que je sauvegarde, que je bascule en vue "layout" et bien ...

    si plateforme = 1.6 alors magnifiques TabHost... (merci Asnidren )
    si plateforme <> 1.6 alors null pointer exception.

    si je change la platefrome via les propriétés du projet, quand je passe en 1.6 alors tab quand je change , pas tab, 1.6 tab, pas 1.6 null pointer... et comme ça à loisir, taux de reproductibilité = 100% !

    J'ai testé ça surt mon portable XP et linux et sur une autre machine linux, tout pareil...

    A part ça je commence à bien m'amuser avec la plateforme et je n'ai absolument aucun souci, je peux coder des interfaces avec des menus et tout et tout... Je n'ai ce problème qu'avec le composant TabHost et les plateformes <> 1.6 !

    Ca vient certainement d'un problème d'install, j'ai suivi les tutos, je n'ai rien de particulier...

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 115
    Par défaut
    Bonjour

    J'ai exactement ce problème avec le SDK 2.1 d'Android : quelqu'un serait-il pourquoi ?

    Merci

  9. #9
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    Même problème, si je compile en autre chose que 2.2 ou 2.3 ça passe, sinon pointer null.. quelqu'un ?

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    C'est juste un problème de l'éditeur WYSIWYG, sur le mobile ou sur l'émulateur ça devrait marcher normalement.

    Me semble que c'est rapport au fait que le FrameLayout est vide puisqu'il faut faire les addTab dans l'activité.

    Du moins chez moi, j'ai jamais réussi à le faire marcher.

  11. #11
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    Que ce soit sur le mobile, l'émulateur ou la galaxy tab, rien ne fonctionnait, FC à chaque fois. Mais j'ai trouvé une solution.
    La version RC vient juste de sortir dans la journée d'hier et elle regle le probleme.

    Donc en résumé :

    1) installer le nouvel ADT (la v11) dispo ici : http://tools.android.com/download/AD...attredirects=0

    2) remplacer les anciennes librairies de votre sdk android avec celles-ci (tout est expliqué dans le Readme) : http://tools.android.com/download/la...attredirects=0

    Pour plus de détails et pour la liste des nouveautés : http://tools.android.com/download
    Pas mal de nouveaux trucs apparament, j'ai pas plus regardé que ça mais beaucoup de trucs présentés au Google I/O.

    Je viens de le faire, ça marche nickel maintenant, ça passe sur émulateur, tablette et mobile. Enfin une maj qui règle le problème, apparament c'était attendu....

    Bonne soirée !

Discussions similaires

  1. Problème basique avec unordered_set
    Par BaygonV dans le forum Débuter
    Réponses: 5
    Dernier message: 16/03/2014, 17h36
  2. [Débutant] Problème basique avec un arbre
    Par StringBuilder dans le forum C#
    Réponses: 2
    Dernier message: 14/11/2011, 17h22
  3. Problème avec TabHost et tabWidget
    Par lupus83 dans le forum Android
    Réponses: 4
    Dernier message: 08/02/2011, 19h28
  4. [Débutant] Problème d’héritage avec EJB3
    Par ghost10 dans le forum Persistance des données
    Réponses: 4
    Dernier message: 28/10/2010, 01h25
  5. Problème basique avec SoapUI 2.5.1
    Par squallJ dans le forum Services Web
    Réponses: 1
    Dernier message: 11/03/2009, 16h27

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