2010-10-11 6 views
0

Je crée un TabHost1 avec 3 onglets: tab1, tab2, tab3. Lorsque vous choisissez tab2, je veux que TabHost2 change dans un autre sous TabHost avec 2 onglets: tab4, tab5.Comment créer un sous-onglets dans Android?

TabHost1.java:

Resources res = getResources(); 
    TabHost tabHost1 = getTabHost(); 
    TabHost.TabSpec spec; 
    Intent intent; 

    // Create an Intent to launch an Activity for the tab (to be reused) 
    intent = new Intent().setClass(this, Tab1.class); 

    // Initialize a TabSpec for each tab and add it to the TabHost 
    spec = tabHost1.newTabSpec("Tab1").setIndicator("Tab1", 
         res.getDrawable(R.drawable.home)) 
        .setContent(intent); 
    tabHost1.addTab(spec); 

    intent = new Intent().setClass(this, Tab2.class); 
    spec = tabHost1.newTabSpec("Tab2").setIndicator("Tab2", 
      res.getDrawable(R.drawable.music)) 
     .setContent(intent); 
    tabHost1.addTab(spec); 

    intent = new Intent().setClass(this, Tab3.class); 
    spec = tabHost1.newTabSpec("Tab3").setIndicator("Tab3", 
      res.getDrawable(R.drawable.album)) 
     .setContent(intent); 
    tabHost1.addTab(spec); 
    tabHost1.setCurrentTab(0); 

TabHost1.xml

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
     <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp"> 
      <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
      <TabWidget 
       android:id="@android:id/tabs" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true"/> 
      <FrameLayout 
       android:id="@android:id/tabcontent" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:padding="5dp" /> 
      </RelativeLayout> 
     </LinearLayout> 
</TabHost> 

Activité Tab2.java:

Resources res = getResources(); 
    TabHost tabHost2 = getTabHost(); 
    TabHost.TabSpec spec; 
    Intent intent; 

    // Create an Intent to launch an Activity for the tab (to be reused) 
    intent = new Intent().setClass(this, tab4.class); 

    // Initialize a TabSpec for each tab and add it to the TabHost 
    spec = tabHost2.newTabSpec("tab4").setIndicator("tab4", 
         res.getDrawable(R.drawable.tab4)) 
        .setContent(intent); 
    tabHost2.addTab(spec); 

    intent = new Intent().setClass(this, tab5.class); 
    spec = tabHost2.newTabSpec("tab5").setIndicator("tab5", 
      res.getDrawable(R.drawable.tab5)) 
     .setContent(intent); 
    tabHost2.addTab(spec); 
    tabHost2.setCurrentTab(0); 

TabHost2.xml est le même TabHost1.xml

Quand je choisis tab2 le re sult comme TabHost2 en cascade TabHost1

En fait, je veux remplacer TabHost2 TabHost1.How pouvons-nous le faire?

Répondre

1

Mettez une seconde TabHost (et les TabWidget et FrameLayout qui l'accompagnent, contenant "tab4" et "tab5") dans "tab2".

Si cela ne correspond pas à ce que vous cherchez, s'il vous plaît modifier votre question avec plus de détails, y compris une image si possible.

+0

Salut, merci pour la réponse, je viens d'éditer ma question..cannot télécharger l'image bcauze nouveau venu ... – hdat

Questions connexes