howimboe Posté(e) 19 février 2010 Share Posté(e) 19 février 2010 (modifié) 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é 24 février 2010 par howimboe Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
glhu Posté(e) 19 février 2010 Share Posté(e) 19 février 2010 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 ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cousinHub Posté(e) 19 février 2010 Share Posté(e) 19 février 2010 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cousinHub Posté(e) 19 février 2010 Share Posté(e) 19 février 2010 (modifié) 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é 19 février 2010 par cousinHub Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
howimboe Posté(e) 19 février 2010 Auteur Share Posté(e) 19 février 2010 (modifié) 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é 19 février 2010 par howimboe Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cousinHub Posté(e) 20 février 2010 Share Posté(e) 20 février 2010 ç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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cousinHub Posté(e) 20 février 2010 Share Posté(e) 20 février 2010 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
howimboe Posté(e) 20 février 2010 Auteur Share Posté(e) 20 février 2010 Voila l'erreur... Android attendait un frameLayout ayant pour nom tabcontent, mais ne connaissant pas encore la syntaxe suffisamment bien il fallait ecrire @android:id/tabcontent Merci pour l'aide! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
zehunter Posté(e) 8 avril 2010 Share Posté(e) 8 avril 2010 ç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... 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.