howimboe Posted February 19, 2010 Share Posted February 19, 2010 (edited) 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 :) Edited February 24, 2010 by howimboe Quote Link to comment Share on other sites More sharing options...
glhu Posted February 19, 2010 Share Posted February 19, 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 ? Quote Link to comment Share on other sites More sharing options...
cousinHub Posted February 19, 2010 Share Posted February 19, 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 Quote Link to comment Share on other sites More sharing options...
cousinHub Posted February 19, 2010 Share Posted February 19, 2010 (edited) 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 ? Edited February 19, 2010 by cousinHub Quote Link to comment Share on other sites More sharing options...
howimboe Posted February 19, 2010 Author Share Posted February 19, 2010 (edited) 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. Edited February 19, 2010 by howimboe Quote Link to comment Share on other sites More sharing options...
cousinHub Posted February 20, 2010 Share Posted February 20, 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. Quote Link to comment Share on other sites More sharing options...
cousinHub Posted February 20, 2010 Share Posted February 20, 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 Quote Link to comment Share on other sites More sharing options...
howimboe Posted February 20, 2010 Author Share Posted February 20, 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! Quote Link to comment Share on other sites More sharing options...
zehunter Posted April 8, 2010 Share Posted April 8, 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... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.