
Envoyé par
Feanorin
En tout cas l'erreur provient bien de là. Il faut que tu lui passes le Context de ta TabActivity.
Pourtant, que je lui passe this ou getParent(), rien à faire, même erreur :s
C'est bien au niveau de l'adapter qu'il faut le faire (je vois pas ou ça pourrait être d'autre de toute façon) ?
ArrayAdapter<String> myAdapter= new ArrayAdapter<String>(getParent(), android.R.layout.simple_spinner_item);

Envoyé par
Feanorin
Lors d'un changement d'onglet tu auras toujours le OnResume et OnPause d'appeller , le OnPause de ton activity précédente , et le OnResume de ta nouvelle Activity.
Donc c'est là que devrais être les test .
Après si tu veux savoir les états de ta TabActivity, le mieux c'est d'enregistrer ces étapes dans la TabActivity , qui enregistrera les différents chemins de tes Activity Filles.
Pour être plus clair, tu as une varaible state dans ta class TabActivity qui permet d'enregistrer das quel état tu te trouves, et lors du OnResume de tes Acitivy filles tu regardes où tu en es ?
Il te suffit juste de garder un lien depuis ton Acitivity fille vers ta TabActivity.
"tu as une variable state", tu veux dire que je dois en créer une, il n'y a pas pareil variable à ma disposition quelque part ? Je vois pas du tout ce que cette variable devra contenir, et surtout quel est son but (tu réponds à quelle question ?).
L'état dans lequel je me trouve me permettant de savoir quelle activité est à lancer dans l'onglet, je le connais, y'a pas de soucis, j'ai pas besoin de me créer d'autre variable. Donc effectivement le onResume permet de résoudre une partie du problème, mais je ne sais pas comment changer le contenu proprement finalement. Je m'explique. Voici le contenu de l'activity d'un de mes onglets (extends TabGroupActivity) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if (condition){
startChildActivity("Activity1", new Intent(this, Activity1.class));
}
else{
startChildActivity("Activity2", new Intent(this, Activity2.class));
}
} |
Donc, dans le onResume, si je met le même code, l'ancienne childActivity du onCreate n'aura pas été supprimée, n'est ce pas ? Il faudrait "remplacer" l'ancienne, ou quelque chose m'échappe...
De plus, comme je le disais, il peut arriver qu'après une action dans le même onglet, celui-ci est besoin de changer d'activity. L'onglet 1 à deux activités possible A et B. Quand A est lancé, une action sur l'onglet 1 peut nécessiter de lancer l'activité B (et éventuellement une action depuis d'autres onglets, mais c'est l'onglet 1 qui pause problème, car onResume n'est pas appelé).

Envoyé par
Feanorin
Je suis un peu d'accord avec AndroChristophe , ce n'est pas au Activity appartenant à tes Onglets de gérer les changements . Si tu veux changer d'onglet alors tu dois appeler une fonction de ta TabActivity depuis tes Onglets qui permet de changer vers un nouvel onglet.
Je n'ai pas compris ce que tu me conseillais de faire pour que cela soit plus propre. Pour l'instant je fais, dans l’activité fille:
(MyTab1GroupActivity)getParent()).getTabHost().setCurrentTab(3);
Partager