2010-12-01 7 views
0

J'ai des problèmes avec les onglets d'Android.Modification d'un contenu d'onglets dans un onglet

d'abord tout ce que je crée mes onglets comme ceci:

tabHost = getTabHost(); 
    search = tabHost.newTabSpec("search").setIndicator("Search").setContent(new Intent(this,Search.class)); 
    mealplan = tabHost.newTabSpec("mealplan").setIndicator("Mealplan").setContent(new Intent(this,Search.class)); 
    shoppinglist = tabHost.newTabSpec("shoppinglist").setIndicator("Shoppinglist").setContent(new Intent(this,Search.class)); 
    settings = tabHost.newTabSpec("settings").setIndicator("Settings").setContent(new Intent(this,NewUser.class)); 

    tabHost.addTab(search); 
    tabHost.addTab(mealplan); 
    tabHost.addTab(shoppinglist); 
    tabHost.addTab(settings); 

Maintenant, je veux avoir la possibilité de changer le contenu d'un onglet dans un onglet. Par exemple, si je suis actuellement dans l'onglet de recherche (l'onglet de démarrage par défaut), je veux modifier par programme le contenu de la recherche avec effet immédiat. Auparavant, je commençais juste de nouvelles activités avec le groupe d'activité, mais cela a fini par me donner stackoverflow tout le temps. Je suppose que c'était parce que je ne pouvais pas utiliser finish() parce que cela fermerait tout le programme. Comme je l'ai dit, ma nouvelle approche pour changer/démarrer une activité à l'intérieur d'un onglet consiste à appeler l'activité contenant les onglets, et à faire en sorte que cette classe change le contenu d'un onglet. Mais comment?

J'ai essayé d'utiliser setContent, mais l'effet n'est pas instantané et il chevauche un peu le contenu par défaut de l'onglet. Pouvez-vous m'aider? Faites-moi savoir si vous voulez un autre code.

Merci d'avance.

Répondre

0
public class l9_taboacto extends Activity { 
    TabSpec search,mealplan,shoppinglist,settings; 


    TabHost tabs; 
    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 

     tabs=(TabHost)findViewById(R.id.tabhost); 
     tabs.setup(); 
     search = tabs.newTabSpec("search").setIndicator("Search").setContent(new Intent(this,Search.class)); 
     mealplan = tabs.newTabSpec("mealplan").setIndicator("Mealplan").setContent(new Intent(this,Search.class)); 
     shoppinglist = tabs.newTabSpec("shoppinglist").setIndicator("Shoppinglist").setContent(new Intent(this,Search.class)); 
     settings = tabs.newTabSpec("settings").setIndicator("Settings").setContent(new Intent(this,NewUser.class)); 

     tabs.addTab(search); 
     tabs.addTab(mealplan); 
     tabs.addTab(shoppinglist); 
     tabs.addTab(settings); 

    } 



} 

bonne chance,


Im désolé, il semble avoir bien compris votre problème dans le mauvais sens, ici vous pouvez trouver une solution pour arranger les intentions de lancement:

http://united-coders.com/nico-heid/android-viewflipper-within-tabhost-for-tabs-with-different-views-and-better-memory

Mohammed ,

Questions connexes