2010-10-11 6 views
0

Je développe une application et dans ma classe j'ai 4 onglets et à l'intérieur de chaque onglet, j'ai une vue liste. Je veux afficher des données dans la vue de la liste. Je m fournir les données dans le tableau, mais le problème est lorsque mon application démarre, il affiche les données de 4 onglets sous un seul onglet. BT quand je clique un par un sur les onglets den il montre les données correctement.Android liste vue sous les onglets

Voici le code source ..:

public class test extends TabActivity implements OnTabChangeListener 
{ 
private static final String LIST_TAB_TAG = "News"; 
private static final String LIST_TAB_TAG2 = "List2"; 
private static final String LIST_TAB_TAG3 = "List3"; 
private static final String LIST_TAB_TAG4 = "List4"; 
private TabHost tabHost,tabHost1,tabHost2,tabHost3; 
private ListView listView,listview2,listview3,listview4; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.clistview); 

    tabHost = (TabHost) findViewById(android.R.id.tabhost); 
    // setup must be called if you are not inflating the tabhost from XML 
    tabHost.setup(); 
    tabHost.setOnTabChangedListener(this); 

    listView = (ListView) findViewById(R.id.list); 
    listview2 = (ListView) findViewById(R.id.list2); 
    listview3 = (ListView) findViewById(R.id.list3); 
    listview4 = (ListView) findViewById(R.id.list4); 

    // create some dummy coordinates to add to the list 
List<String> list1Strings = new ArrayList<String>(); 
     list1Strings.add(""); 
     list1Strings.add("Item 2"); 
     list1Strings.add("Item 3"); 
     list1Strings.add("Item 4"); 
     listView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, list1Strings)); 



    List<GeoPoint> pointsList2 = new ArrayList<GeoPoint>(); 
    pointsList2.add(new GeoPoint((int)(464464645), (int)(979646664))); 
    pointsList2.add(new GeoPoint((int)(7976566), (int)(987464313))); 
    listview2.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, pointsList2)); 

    List<GeoPoint> pointsList3 = new ArrayList<GeoPoint>(); 
    pointsList3.add(new GeoPoint((int)(32.864*1E6), (int)(-117.2353*1E6))); 
    pointsList3.add(new GeoPoint((int)(37.441*1E6), (int)(-122.1419*1E6))); 
    listview3.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1, pointsList3)); 

    List<GeoPoint> pointsList4 = new ArrayList<GeoPoint>(); 
    pointsList4.add(new GeoPoint((int)(464464645), (int)(979646664))); 
    pointsList4.add(new GeoPoint((int)(7976566), (int)(987464313))); 
    listview4.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, pointsList4)); 

    tabHost.addTab(tabHost.newTabSpec(LIST_TAB_TAG).setIndicator("News", getResources().getDrawable(R.drawable.newsicon)).setContent(new TabContentFactory() 
    { 
     public View createTabContent(String arg0) { 
      return listView; 
     } 
    })); 

    tabHost.addTab(tabHost.newTabSpec(LIST_TAB_TAG2).setIndicator("Opinion", getResources().getDrawable(R.drawable.opinionicon)).setContent(new TabContentFactory() { 
     public View createTabContent(String arg0) { 
      return listview2; 
     } 
    })); 

    tabHost.addTab(tabHost.newTabSpec(LIST_TAB_TAG3).setIndicator("Press", getResources().getDrawable(R.drawable.pressicon)).setContent(new TabContentFactory() { 
     public View createTabContent(String arg0) { 
      return listview3; 
     } 
    })); 

    tabHost.addTab(tabHost.newTabSpec(LIST_TAB_TAG4).setIndicator("My Stocks", getResources().getDrawable(R.drawable.mystockicon)).setContent(new TabContentFactory() { 
     public View createTabContent(String arg0) { 
      return listview4; 
     } 
    })); 



    //HACK to get the list view to show up first, 
    //tabHost.setCurrentTab(1); 
    //tabHost.setCurrentTab(0); 
} 

@Override 
/*protected boolean isRouteDisplayed() { 
    // TODO Auto-generated method stub 
    return false; 
}*/ 


public void onTabChanged(String tabId) { 
    // TODO Auto-generated method stub 

    } 

} 
+0

Y at-il une chance vous pouvez ajouter votre fichier XML de mise en page? –

+0

En outre, existe-t-il une raison pour laquelle vous étendez TabActivity mais extrayez également l'hôte tab et appelez setup()? En général, vous appelez le programme d'installation uniquement s'il ne s'agit pas d'une TabActivity. Il semble que vous ayez reçu ce code de mon blog sur la carte des activités. J'ai aussi un tutoriel sur les activités de liste qui pourraient être plus faciles à suivre. –

+0

Désolé josh Voir ci-dessous; – JonniBravo

Répondre

0

Je suis désolé Josh il semble que je l'ai coupé et collé le fichier xml mal, je suis de déconner avec implenting différents types de mise en page avec onglets cartes et listviews c'est pourquoi vous tutoriel est dans le même espace de travail, ce qui est un peu comme mon bureau ....... très salissant

C'est le xml correct:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="5dp"> 

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

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

android: layout_width = "320px" android: layout_height = "58px" android: src = "@ drawable/grasshe" >

</LinearLayout> 

Questions connexes