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][TabHost & Activity] Tutoriel TabHost, onglets mais pas de frame


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut [Débutant][TabHost & Activity] Tutoriel TabHost, onglets mais pas de frame
    Bonjour,
    J'essaye de suivre un tutoriel pour apprendre Android sur la création d'onglets, mais je n'arrive pas à avoir les textes correspondants aux pages d'onglets. Les onglets s'affichent (pas très beaux, sans arrondis...),je peux passer de l'un à l'autre, mais en-dessous j'ai une zone noire sans texte.

    main.xml
    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
     
    <?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">
        <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"
                android:padding="10dp" />
        </LinearLayout>
    </TabHost>
    Mes activity de tab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Tab2Activity extends Activity {
    	public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.tab1);
            TextView tv = new TextView(this);
            tv.setText("Hello, Android 2");
            setContentView(tv);
        }
    }
    mon activity principale :
    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
     
    public class Test extends TabActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            Resources res = getResources();
            TabHost tabHost = getTabHost(); 
            TabHost.TabSpec spec;  
            Intent intent;
     
            intent = new Intent().setClass(this, Tab1Activity.class);
            spec = tabHost.newTabSpec("Tab1").setIndicator("Tab1",res.getDrawable(R.drawable.mini_logo)).setContent(intent);
            tabHost.addTab(spec);
     
            intent = new Intent().setClass(this, Tab2Activity.class);
            spec = tabHost.newTabSpec("Tab2").setIndicator("Tab2",res.getDrawable(R.drawable.mini_logo)).setContent(intent);
            tabHost.addTab(spec);
     
            intent = new Intent().setClass(this, Tab3Activity.class);
            spec = tabHost.newTabSpec("Tab3").setIndicator("Tab3",res.getDrawable(R.drawable.mini_logo)).setContent(intent);
            tabHost.addTab(spec);
     
            tabHost.setCurrentTab(0);
     
     
        }
    }
    le manifest :
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.test.Test"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".Test"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    		<activity android:name=".Tab1Activity" android:label="@string/tab1_activity_name"></activity>
    		<activity android:name=".Tab2Activity" android:label="@string/tab2_activity_name"></activity>
    		<activity android:name=".Tab3Activity" android:label="@string/tab3_activity_name"></activity>
     
        </application>
        <uses-sdk android:minSdkVersion="8" />
     
    </manifest>
    Qu'est-ce que je n'ai pas compris?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 22
    Par défaut
    Ton framelayout ne devrait il pas contenir autant de layout que tu as d'onglets ?

    Ex :
    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
     
    <FrameLayout android:id="@android:id/tabcontent"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">
    	<LinearLayout android:id="@+id/ong1" 
    		android:orientation="vertical"
    		android:layout_width="fill_parent" 
    		android:layout_height="fill_parent">
                    ...
            </LineaLayout>
    	<LinearLayout android:id="@+id/ong2" 
    		android:orientation="vertical"
    		android:layout_width="fill_parent" 
    		android:layout_height="fill_parent">
                    ...
            </LineaLayout>
    	<LinearLayout android:id="@+id/ong3" 
    		android:orientation="vertical"
    		android:layout_width="fill_parent" 
    		android:layout_height="fill_parent">
                    ...
            </LinearLayout>
    </FrameLayout>

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    J'ai modifié le main.xml comme suit, et ca ne change rien:
    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
     
    <?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">
        <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>

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    J'ai trouvé la solution dans l'exemple http://developer.android.com/resourc...iew/Tabs1.html.

    J'ai modifié l'activité principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.main);
     
            TabHost tabHost = getTabHost(); 
            LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(), true);
            tabHost.setup(); 
         tabHost.addTab(tabHost.newTabSpec("Tab1").setIndicator("Tab1",this.getResources().getDrawable(R.drawable.mini_logo_eurelis)).setContent(new Intent(this, Tab1Activity.class)));
            tabHost.addTab(tabHost.newTabSpec("Tab2").setIndicator("Tab2",this.getResources().getDrawable(R.drawable.mini_logo_eurelis)).setContent(new Intent(this, Tab2Activity.class)));
            tabHost.addTab(tabHost.newTabSpec("Tab3").setIndicator("Tab3",this.getResources().getDrawable(R.drawable.mini_logo_eurelis)).setContent(new Intent(this, Tab3Activity.class)));
     
            tabHost.setCurrentTab(0);
        }

    Edit:
    En fait j'ai parlé un peu vite, ca a marché 1 fois, puis j'ai modifié des trucs que je pensais innocents, et maintenant j'ai une erreur sur le projet, qui m'empêche de lancer l'appli, mais pas d'erreur sur les fichiers...
    Rien dans la console et pas d'erreur dans les Logs... Le problème relevé est : Unparsed aapt error(s)! Check the console for output.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    Apres une petite recherche j'ai trouvé la solution ici :
    Il faut cliquer droit sur la ligne Probleme, supprimer l'erreur, modifier n'importe quel fichier pour forcer le rebuild, et normalement c'est bon.

  6. #6
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 32
    Par défaut
    Bonjour,

    je remonte ce topic pour savoir si tu avais réussi à créer des onglets arrondis, si oui peux tu me dire comment!
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script qui fonctionne dans un onglet mais pas dans un popup
    Par lwolf dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/08/2012, 20h13
  2. [TabContainer]Cacher un onglet mais pas son contenu
    Par Spellbinder dans le forum ASP.NET Ajax
    Réponses: 2
    Dernier message: 10/05/2011, 15h46
  3. Problème Activity et Tabhost
    Par echelon3 dans le forum Android
    Réponses: 0
    Dernier message: 12/02/2011, 12h49
  4. Réponses: 2
    Dernier message: 09/10/2007, 11h31
  5. Réponses: 11
    Dernier message: 22/04/2007, 10h58

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