2010-08-05 4 views
0

Je suis nouveau sur cette plateforme et commence déjà à l'aimer. Je travaille sur une interface utilisateur pour un projet qui utilise le tabhost pour afficher deux activités distinctes à l'aide d'une classe TabActivity. Cela fonctionne bien. Maintenant, je voudrais ajouter un viewflipper à l'équation. J'essaye de ajouter le widget tabhost au viewflipper en utilisant la méthode addView(). Par exemple:Ajouter un tabhost dans viewflipper

public class Main extends TabActivity { 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       TabHost host = getTabHost(); 
       host.addTab(host.newTabSpec("one").setIndicator("First").setContent( 
           new Intent(this, First.class))); 
       host.addTab(host.newTabSpec("two").setIndicator("Second") 
           .setContent(new Intent(this, Second.class))); 
       Button btn1 = new Button(this); 
       btn1.setText("Second Screen"); 
       flipper = new ViewFlipper(this); 
       flipper.addView(host); 
       flipper.addView(btn1); 
       setContentView(flipper); 
     } 
} 

Le motif principal est une application avec deux activités tout à onglets. Le viewflipper va alors basculer entre ces deux activités. Je suis en pensant une alternative sera d'utiliser la mise en page xml pour tenir le tabhost et juste l'inclure dans la vue. Je l'évite pour l'instant car cela voudrait dire que j'écrirais à nouveau les codes pour les deux classes. Pour arrondir tout cela, est-il possible d'inclure un tabhost dans un viewflipper .

Merci,

New Guy

Répondre

1

Vous devriez écrire dans le XML au lieu de codé en dur. c'est plus facile et a l'air mieux.

Ici, j'ai créé un tabhost, qui tient une ViewFlipper de 2 listviews, et un autre listview dans d'autres onglet

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+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"> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#ffffff" 
    android:textSize="18sp" 
    android:textStyle="bold" 
    android:text="@string/title_text" 
    android:id="@+id/title" 
    android:background="@drawable/shape" 
    android:padding="15dp" 
    android:gravity="center" 
    /> 

    <FrameLayout android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="15dp" 
     > 

     <ListView android:id="@+id/listfav" android:layout_width="fill_parent" 
      android:layout_height="wrap_content" android:layout_weight="1"> 
     </ListView> 

     <ViewFlipper android:id="@+id/viewflipper" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
     > 
     <ListView android:id="@+id/listmain" android:layout_width="fill_parent" 
      android:layout_height="wrap_content" android:layout_weight="1"> 
     </ListView> 
     <ListView android:id="@+id/listsub" android:layout_width="fill_parent" 
      android:layout_height="wrap_content" android:layout_weight="1"> 
     </ListView> 
     </ViewFlipper> 

    </FrameLayout> 

    <TabWidget android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
    /> 

</LinearLayout> 

Voici comment vous le faites ..