2009-12-31 8 views
4

Il y a 4 tabulations dans un TabHost, soit A, B, C et D. Maintenant, chacune est juste une page d'index et cliquer sur l'une d'entre elles montre une activité différente.onglets android - démarrer une nouvelle activité

Le problème est que j'ai besoin de démarrer une autre activité lorsque l'utilisateur sélectionne quelque chose du contenu affiché dans l'onglet. L'autre activité doit également être affichée dans l'onglet parent lui-même. C'est possible? Ou devrais-je essayer quelque chose d'autre?

+0

http://richipal.com/post/2624844577 essayez ce lien :) ,, il a travaillé pour moi –

Répondre

2

Vous ne pouvez pas modifier le contenu de votre onglet au lieu de démarrer une nouvelle activité? Peut-être que je me trompe mais je pense aussi que démarrer une activité dans un onglet n'est pas possible parce que le TabView est hébergé dans une activité et non l'inverse (Tabview n'héberge pas une activité par Tab).

+0

est là de toute façon je peux effacer tout le contenu et les remplacer par une autre mise en page ... il serait utile si vous pourrait donner une ressource ou un codage simple ... – JaVadid

+0

devinez donc ... donc il semble que ce n'est pas possible ... en fait j'ai besoin de sauvegarder l'état des activités précédentes aussi ... – JaVadid

+0

Je ne suis pas familier avec les onglets, essayez à la recherche de TabHost javadoc (http://developer.android.com/reference/android/widget/TabHost.html). – tbruyelle

1

Pour résumer le lien rukmal Dias fourni. Voici ce que vous faites:

  1. Changer votre activité actuelle (qui est dans un onglet) pour dériver de ActivityGroup
  2. Créer une nouvelle intention pour l'activité que vous souhaitez passer à
  3. Copier/Coller et appeler cette fonction dans votre activité actuelle où « id » est le « android: id » pour la mise en page de la nouvelle activité que vous souhaitez passer à

    public void replaceContentView(String id, Intent newIntent){ 
         View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView(); 
         this.setContentView(view);} 
    

Voici un exemple de comment je fais l'appel pour changer les vues de mon activité tabulée actuelle:

public void switchToNextActivity(View view) 
{ 
    Intent myIntent = new Intent(getApplicationContext(), MyNextActivity.class); 
    replaceContentView("next_activity", myIntent); 
} 
0

Il perd la hiérarchie de vue. Lorsque vous appuyez sur le bouton de retour, dans mon cas, l'application se ferme.

+1

Comment est-ce une réponse à la question d'origine? – cha0site

Questions connexes