2012-10-23 4 views
1

Je crée simple application qui ont 3 au total des activitésTabhost android

  1. signe in- ayant le nom d'utilisateur, champ de mot de passe et connectez-vous et inscrivez-vous bouton
  2. signe Up- ayant divers champs de formulaire et de soumettre le bouton
  3. Message- après signe réussi à nous arrivons à cette activité

J'utilise tabhost qui ont 3 onglets définissant ci-dessus 3 activités. Au clic de l'onglet, je peux basculer entre les activités respectives, mais quand j'utilise des boutons sur le formulaire pour passer je ne peux pas voir les onglets. Je veux afficher les onglets à l'écran, je passe d'un onglet ou d'un bouton. Existe-t-il un concept comme le maintien de la disposition des onglets et seulement le changement d'activité dans le cadre ... J'ai entendu parler du groupe tabhost mais je ne suis pas capable de l'utiliser ... est-ce possible? Réservoir vous

mon code tabhost est

public class TabActivity extends android.app.TabActivity 
{ 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tab); 

     /** TabHost will have Tabs */ 
    TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); 

    /** TabSpec used to create a new tab. 
    * By using TabSpec only we can able to setContent to the tab. 
    * By using TabSpec setIndicator() we can set name to tab. */ 

    /** tid1 is firstTabSpec Id. Its used to access outside. */ 
    TabSpec signinTab = tabHost.newTabSpec("tid1"); 
    TabSpec signupTab = tabHost.newTabSpec("tid2"); 
    TabSpec messageTab = tabHost.newTabSpec("tid3"); 

    /** TabSpec setIndicator() is used to set name for the tab. */ 
    /** TabSpec setContent() is used to set content for a particular tab. */ 
    signinTab.setIndicator("Sign In").setContent(new Intent(getApplicationContext(),SignIn.class)); 
    signupTab.setIndicator("Sign Up").setContent(new Intent(getApplicationContext(),MainActivity.class)); 
    messageTab.setIndicator("Message").setContent(new Intent(getApplicationContext(),MessageDisplay.class)); 

    /** Add tabSpec to the TabHost to display. */ 
    tabHost.addTab(signinTab); 
    tabHost.addTab(signupTab); 
    tabHost.addTab(messageTab);//set Windows tab as default (zero based) 

    // tabHost.setCurrentTab(2); 
} 

} 
+3

mais TabActivity est maintenant dépréciée. –

+0

Seulement déprécié sur 4.0 et ci-dessus, mais plus de 50% des téléphones là-bas sont encore 2.3.6 et moins. Son code a besoin de les représenter. –

+0

Si je passe par tabhost à une autre activité alors c'est ok mais quand je vais à l'autre activité en utilisant le bouton plutôt que tabhost alors dans cette activité comment montrer l'hôte de l'onglet. il est donc possible de le faire d'une manière ou d'une autre. –

Répondre

1

code Java:

public class TabActivity extends android.app.TabActivity 
{ 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tab); 

     /** TabHost will have Tabs */ 
    TabHost tabHost = getTabHost(); 

    /** TabSpec used to create a new tab. 
    * By using TabSpec only we can able to setContent to the tab. 
    * By using TabSpec setIndicator() we can set name to tab. */ 

    /** tid1 is firstTabSpec Id. Its used to access outside. */ 
    TabSpec signinTab = tabHost.newTabSpec("tid1"); 
    TabSpec signupTab = tabHost.newTabSpec("tid2"); 
    TabSpec messageTab = tabHost.newTabSpec("tid3"); 

    /** TabSpec setIndicator() is used to set name for the tab. */ 
    /** TabSpec setContent() is used to set content for a particular tab. */ 
    signinTab.setIndicator("Sign In").setContent(new Intent(getApplicationContext(),SignIn.class)); 
    signupTab.setIndicator("Sign Up").setContent(new Intent(getApplicationContext(),MainActivity.class)); 
    messageTab.setIndicator("Message").setContent(new Intent(getApplicationContext(),MessageDisplay.class)); 

    /** Add tabSpec to the TabHost to display. */ 
    tabHost.addTab(signinTab); 
    tabHost.addTab(signupTab); 
    tabHost.addTab(messageTab);//set Windows tab as default (zero based) 

    // tabHost.setCurrentTab(2); 
} 

} 

XML Mise en page:

<?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="match_parent" 
    android:layout_height="match_parent" > 
    <LinearLayout 
     android:orientation="vertical" 
     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"/> 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 


    </LinearLayout> 
</TabHost>