Aller au contenu

Changer l'activity dans un tabhost


Calo

Recommended Posts

Bonjour à tous,

étant nouveau dans le monde d'Android, j'ai quelques petits soucis dont celui-ci que je n'arrive pas à régler malgré mes recherches.

J'ai une activité principale dans mon application qui contient quatre onglets.

Un de ces onglets contient une liste (ListView) d'éléments "cliquables". Ces éléments, lorsque l'on clique dessus, affiche une nouvelle Activity avec différentes informations.

Le soucis, c'est que, en cliquant sur une élément de la liste, l'Activity est bien lancée, mais tous les onglets disparaissent. Ce que je voudrais, c'est "glisser" d'une activité à une autre DANS le MÊME onglet.

Dois-je utiliser un ViewFlipper (auquel cas je dois tout ranger dans une seule activité).. ?

Merci par avance (je ne sais pas si j'ai exposé clairement le problème).

Calo

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

voici comment je fais:

TabHost tabs=(TabHost)findViewById(R.id.tabhost);

tabs.setup();

// Alcoolemie

TabHost.TabSpec spec = tabs.newTabSpec("alcoolemie");

spec.setContent(R.id.AlcoolemieLayout); //ici pas d'activité lancée juste un layout affiché

spec.setIndicator(getString(R.string.alcoolemie),res.getDrawable(R.drawable.ic_tab_alcoolemie));

tabs.addTab(spec);

.................

// Config

spec = tabs.newTabSpec("Config");

spec.setContent(new Intent(this, PreferenceSettings.class)); // ici une preference activity dans l'onglet

//spec.setIndicator("Config",res.getDrawable(R.drawable.ic_tab_config));

spec.setIndicator(getString(R.string.config),res.getDrawable(R.drawable.ic_tab_config));

tabs.addTab(spec);

tabs.setup(this.getLocalActivityManager());

Cela fonctionne avec une preference activity donc probablement avec une activity.

Lien vers le commentaire
Partager sur d’autres sites

  • 8 months later...

bonjour, excusez moi mais je n'ai pas bien compris car j'ai le même problème.

En fait, j'ai 4 tabHost qui lancent chacun 1 activity. jusque là tout marche très bien.

mais le problème est que dans chacune de ces acticity, je dois lancer d'autres activity (ou sous-activity) qui n'ont pas leur label (ou icones) sur les tabHost. Alors comment faire pour gader les tabHost là où ils sont quand je me promène dans les sous-activity?

voici mon code:

Voici ma classe main qui aide à lancer les 4 Activity:

public class Tabwidget extends TabActivity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Resources res = getResources();

TabHost tabHost = getTabHost();

TabHost.TabSpec spec;

Intent intent;

intent = new Intent().setClass(this, Activity1.class);

spec = tabHost.newTabSpec("Activity1").setIndicator("Activity1", res.getDrawable(R.drawable.Activity1)).setContent(intent);

tabHost.addTab(spec);

intent = new Intent().setClass(this, Activity2.class);

spec = tabHost.newTabSpec("Activity2").setIndicator("Activity2", res.getDrawable(R.drawable.Activity2)).setContent(intent);

tabHost.addTab(spec);

intent = new Intent().setClass(this, Activity3.class);

spec = tabHost.newTabSpec("Activity3").setIndicator("Activity3", res.getDrawable(R.drawable.Activity3)).setContent(intent);

tabHost.addTab(spec);

intent = new Intent().setClass(this, Activity4.class);

spec = tabHost.newTabSpec("Activity4").setIndicator("Activity4", res.getDrawable(R.drawable.Activity4)).setContent(intent);

tabHost.addTab(spec);

tabHost.setCurrentTab(0);

}

}

et voici ce qui se passe dans l'une des activity, prennons Activity1 par exemple:

public class Activity1 extends Activity implements OnClickListener{

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity1);

Button sub_activity_1_btn = (Button) findViewById(R.id.sub1);

sub_activity_1_btn.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

startActivity(new Intent("com.subActivity1"));

}

});

Button sub_activity_2_btn = (Button) findViewById(R.id.sub2);

sub_activity_2_btn.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

startActivity(new Intent("com.subActivity2"));

}

});

}

public void onClick(View v) {

}

}

là mon activity1 a 2 boutons pour aller à subActivity1 et subActivity2.

Main quand je clique sur un de ces boutons, le tabWidget disparait (ce qui est logique) mais comment fait-on pour qe ça ne disparait pas.

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...