12
votes

Android Tabhost.AdDTAB -> Null Pointer Exception

Voici mon code:

    [...]
    07-13 20:26:49.261: ERROR/AndroidRuntime(625): Caused by: java.lang.NullPointerException
    07-13 20:26:49.261: ERROR/AndroidRuntime(625):     at android.widget.TabHost.addTab(TabHost.java:206)
    07-13 20:26:49.261: ERROR/AndroidRuntime(625):     at test.test.Main.onCreate(Main.java:27)
    [...]


0 commentaires

4 Réponses :


2
votes

Vérification de la méthode Tabhost.AdDTAB (...) dans la source-cadre suggère que votre tabwidget n'est pas encore disponible. Un Tabwidget doit être créé en premier ou par le système lors de la création d'une mise en page et doit avoir un identifiant de android.r.id.tabs . .


0 commentaires

1
votes

Avez-vous pensé à étendre tabactivité , puis appelant gettabhost ( ) Pour obtenir l'instance du Tabhost? Je ne sais pas quel est votre objectif, mais cela pourrait valoir la peine d'être examinée.


1 commentaires

Oui, mais ta tabactivité est une activité et j'ai besoin d'une vue.



8
votes

Vous devez utiliser tabactivité, il a besoin d'une même présentation spéciale à définir en tant que contenu (voir http://developer.android.com/resources/tatudials/views/hello-tabwidget.html ). Si vous ne pouvez pas utiliser XML, vous devez construire le même contenu à partir du code Java: xxx

}


4 commentaires

Non, j'ai besoin d'ajouter un onglet dans une activité, en tant que composant.


HM ... mais Tabhost ne peut pas fonctionner en dehors de la tabactivité. Le but est d'ajouter Tabhost à une activité prédéfinie (peut-être mapactivité ou autre), n'est-ce pas?


Non, c'est pour une bibliothèque. Nevermind, si cela ne peut pas être fait, je vais utiliser quelque chose d'autre et programmer des onglets meilleurs moi-même plus tard.


La tabactivité est obsolète, alors je suppose que ce n'est pas vrai que Tabhost l'exige. Quelqu'un peut-il me signaler aux instructions pour utiliser Tabhost qui ne s'appuie pas sur l'utilisation d'une classe obsolète?



44
votes

Pour les personnes qui pourraient se demander à propos de tabactivité d'être obsolètes le Documentation dit que vous devez appeler la configuration () avant d'ajouter des onglets, lorsque vous n'utilisez pas une tabactivité.

tabHost.setup();


3 commentaires

J'oublie toujours ce bit et finissez-vous à votre commentaire. Merci.


Quel manque de documentation ... Si vous ne trouvez pas cette méthode particulière, vous êtes foutu. Génial merci!


@Svenmenschner d'accord. Ceci est un modèle de conception inhabituel à tous les autres (Android). En plus d'un appel de constructeur, une méthode de configuration doit être appelée - sans paramètres. N'a aucun sens pour moi.