Aller au contenu

[Résolu] Example TabWidget


Recommended Posts

Bonjour a tous,

au risque de poser un sujet 1000 fois résolu, je ne trouve pas la cause de mon bug... si vous avez du temps, il s'agit de l'example de gestion de tab fournit sur le site http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

J'ai tout rentré je pense correctement, mais ca me fait un "forcer a quitter" et comme je n'ai pas encore mega experience du debug, je ne trouve pas ce qui declenche cette merveille.

Voila les sources :

 package com.example.helloTab;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class AlbumsActivity extends Activity {
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       TextView textview = new TextView(this);
       textview.setText("This is the Albums tab");
       setContentView(textview);
   }
}

package com.example.helloTab;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;

public class helloTab 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(); // Resource object to get Drawables
       TabHost tabHost = getTabHost();  // The activity TabHost
       TabHost.TabSpec spec;  // Resusable TabSpec for each tab
       Intent intent;  // Reusable Intent for each tab

       // Create an Intent to launch an Activity for the tab (to be reused)
       intent = new Intent().setClass(this, ArtistsActivity.class);

       // Initialize a TabSpec for each tab and add it to the TabHost
       spec = tabHost.newTabSpec("artists").setIndicator("Artists",
                         res.getDrawable(R.drawable.ic_tab_artists))
                     .setContent(intent);
       tabHost.addTab(spec);

       // Do the same for the other tabs
       intent = new Intent().setClass(this, AlbumsActivity.class);
       spec = tabHost.newTabSpec("albums").setIndicator("Albums",
                         res.getDrawable(R.drawable.ic_tab_artists))
                     .setContent(intent);
       tabHost.addTab(spec);

       intent = new Intent().setClass(this, SongsActivity.class);
       spec = tabHost.newTabSpec("songs").setIndicator("Songs",
                         res.getDrawable(R.drawable.ic_tab_artists))
                     .setContent(intent);
       tabHost.addTab(spec);

       tabHost.setCurrentTab(0);
   }
}

<?xml version="1.0" encoding="utf-8"?>


         android:state_selected="true" />


<?xml version="1.0" encoding="utf-8"?>
   android:id="@android:id/tabhost"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
       android:orientation="vertical"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:padding="5dp">
           android:id="@android:id/tabs"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content" >
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content">





Mes tests : 1 seule tab, 2 tabs, avec/sans icones, refaire les tab avec le XML_LAYOUT_WIZARD ou je sais pas comment ca s'appelle... d'ailleurs en utilisant cet outil, les tabs n'apparaissent pas en mode "previsualisation". Bref j'ai retenté de tout refaire depuis 0, toujours la meme erreur. Je precise que la premiere source est dupliquée 3 fois en artist, song et album.

Le probleme peut-il venir du fait que je sois sur une target en 2.1, alors que mon projet est minSdkVersion="3"?

Merci d'avance pour toute aide, lien, pensée :)

Modifié par howimboe
Lien vers le commentaire
Partager sur d’autres sites

Salut,

je pense que tu auras plus de chance dans la section dev/XML-UI du forum ;-)

Sinon, pour ton probleme, avec un breakpoint dans le OnCreate de ton TabActivity et du pas a` pas, ca ne te donne pas plus d'indications sur la cause du crash ?

Lien vers le commentaire
Partager sur d’autres sites

est-ce que ce n'est pas simplement le fait que tu nommes ton Activity "AlbumsActivity"

puis tu veux lancer une intent que tu nommes "ArtistsActivity.class" ??

intent = new Intent().setClass(this, ArtistsActivity.class);

=> intent = new Intent().setClass(this, AlbumsActivity.class);

me semblerait plus correct ...

à tester ...

Hub

Lien vers le commentaire
Partager sur d’autres sites

désolé j'ai lu un peu vite, est-ce que tu as bien créé trois Activity distinctes : ArtistsActivity, AlbumsActivity, and SongsActivity

(le point 2 du tuto) ?

Ne faut-il pas également "déclarer" ces 3 activity dans ton manifest ?

Modifié par cousinHub
Lien vers le commentaire
Partager sur d’autres sites

désolé j'ai lu un peu vite, est-ce que tu as bien créé trois Activity distinctes : ArtistsActivity, AlbumsActivity, and SongsActivity

(le point 2 du tuto) ?

Ne faut-il pas également "déclarer" ces 3 activity dans ton manifest ?

je vais chercher dans ce sens la :)

EDIT : oui en effet, il semble falloir ajouter les activités a chaque fois... mais meme en faisant ca, ca me plante mon appli avant la moindre operation.

Modifié par howimboe
Lien vers le commentaire
Partager sur d’autres sites

pour info également, tu n'es pas "obligé" de faire des Activity séparées pour chaque Tab,

tu peux très bien déclarer tous tes Tabs dans un même Layout et utiliser

tabHost.setCurrentTab(1);

tabHost.setCurrentTab(2);

tabHost.setCurrentTab(3);

etc

pour switcher d'un Tab à l'autre...

http://developer.android.com/intl/fr/reference/android/widget/TabHost.html#setCurrentTab(int)

c'est en fait ce que je fais dans mon appli MétéoBelgique :

http://www.appbrain.com/app/com.cousinHub.meteo

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
ça me plante mon appli avant la moindre operation.

quel est le message d'erreur ? tu peux faire un copier/coller du logcat ce sera plus facile pour t'aider? ;)

tu peux également m'envoyer ton projet via MP et je veux bien regarder...

H.

je serais bien interessé pour avoir un bout de code pour faire en XML des TAB avec une unique activity et pas plusieurs...

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...