Votre contenu doit avoir un TabHost dont l'attribut id est " android.R.id.tabhost'
J'ai un problème:
Code Java
public class VisualizzaListaActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost tabHost = getTabHost(); //The activity TabHost
TabHost.TabSpec spec; //Reusable 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, DaAcquistareActivity.class);
//Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("daAcquistare").setIndicator("Da Acquistare").setContent(intent);
tabHost.addTab(spec);
//Do the same for the other tabs
intent = new Intent().setClass(this, AcquistatiActivity.class);
spec = tabHost.newTabSpec("acquistati").setIndicator("Acquistati").setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
}
}
Code XML
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" <-------------- It's tabhost -.-"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<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="5dp" />
</LinearLayout>
</TabHost>
Et LogCat
12-16 15:26:22.519: E/AndroidRuntime(8262): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.smile.matteo.spesaPRO/android.smile.matteo.spesaPRO.VisualizzaListaActivity}: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'
12-16 15:26:22.519: E/AndroidRuntime(8262): Caused by: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'
12-16 15:26:22.519: E/AndroidRuntime(8262): at android.smile.matteo.spesaPRO.VisualizzaListaActivity.onCreate(VisualizzaListaActivity.java:13)
Problème
Quelqu'un peut me dire pourquoi il est dit
Votre contenu doit avoir un TabHost dont l'attribut id est " android.R.id.tabhost'
lorsque le android:id = @android:id/tabhost?
Avez-vous essayé la reconstruction de l'ensemble du projet? Parfois, eclipse est un peu bogué dans ces situations
essayez de supprimer votre R fichier et de reconstruction.
J'ai essayé de nettoyer le projet, de le redémarrer et supprimer des R mais rien. J'ai essayé d'utiliser ce code dans une autre application et c'est parti mais ce ne courent pas
Avez-vous plusieurs mise en page des dossiers? Si oui, vérifiez que tous les xml fichier de mise en page ont l'attribut.
Votre commentaire a résolu mon problème! Mon projet utilise une bibliothèque, tous deux avaient main.xml dans la mise en page, et j'ai donc eu l'manquant tabhost erreur. Supprimé le main.xml je n'ai pas besoin, et le problème est résolu, merci 🙂
essayez de supprimer votre R fichier et de reconstruction.
J'ai essayé de nettoyer le projet, de le redémarrer et supprimer des R mais rien. J'ai essayé d'utiliser ce code dans une autre application et c'est parti mais ce ne courent pas
Avez-vous plusieurs mise en page des dossiers? Si oui, vérifiez que tous les xml fichier de mise en page ont l'attribut.
Votre commentaire a résolu mon problème! Mon projet utilise une bibliothèque, tous deux avaient main.xml dans la mise en page, et j'ai donc eu l'manquant tabhost erreur. Supprimé le main.xml je n'ai pas besoin, et le problème est résolu, merci 🙂
OriginalL'auteur Matteo Cardellini | 2011-12-16
Vous devez vous connecter pour publier un commentaire.
Essayez de nettoyer votre construire à partir de la
Project > Clean...
menu si vous êtes en utilisant Eclipse. Semble simple, mais souvent résout ce problème.Est de votre fichier xml nommé
main.xml
?pas de. il est appelé visualizzaliste.xml (C'est italien :))
Changement
setContentView(R.layout.main);
àsetContentView(R.layout.visualizzaliste);
mais je suppose que tu as!je suis un très grand idiot !!! Merci beaucoup !!! j'ai concentré mon attention sur le fichier xml et je n'ai pas de voir cela... Merci beaucoup encore
OriginalL'auteur silleknarf
Je crois que le message veut dire ceci:
devrait être changé en:
Merci. A travaillé pour moi, parce que je utiliser TabActivity
OriginalL'auteur Rupesh
Seule chose que vous avez besoin de changer android:id de l'attribut dans le schéma xml , Il doit être " android:id="@android:id/tabhost" "
OriginalL'auteur Harinder
J'ai eu le même problème.
En fait, j'ai étendu
TabActivity
pourDaAcquistareActivity
classe. C'était la raison. J'ai résolu le problème en étendantDaAcquistareActivity
avecActivity
et pas avecTabActivity
.OriginalL'auteur Jomia
Solution.
Si vous passez à une nouvelle Activité de vérifier s'étend, peut-être par réflexe copié à partir de la primaire, et il y a un TabActivity, mais nous avons besoin de de l'Activité ou de l'activité.
OriginalL'auteur A. Nick