Aller au contenu

ListView dans des onglets


novembre

Recommended Posts

Bonjour

Dans mon application, j'ai besoin d'avoir des onglets avec des listView.

J'ai suivi cet exemple pour y arriver :

Mon lien

Ca marche très bien. Seulement, je souhaite mettre des element un peu plus complexe dans ma liste, c'est pourquoi, j'utilise mon propre adapter.

Et j'ai un bug graphique de superposition entre les 2 listes. J'ai cherché à simplifier mon code pour voir si ca venait de element de ma liste, mais toujours le même problème :

bugsurposition.th.png

Elle s'affiche au démarrage. Lorsque je vais dans les onglets, le problème ne se pose plus

Voilà les parties de mon codes qui gère tout ça :

   @Override
   public void onCreate(Bundle savedInstanceState) {
   	super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// onglets
setuNowTab();
setupPrimetimeTab();
   }

   private void setuNowTab() {
       listNow = (ListView) findViewById(R.id.listNow);
       listNow.setAdapter(monAdapter);		
setupGenericTab(TAG_NOW, R.string.tab_now, listNow);

}

private void setupPrimetimeTab() {
	List<String> list2Strings = new ArrayList<String>();
	list2Strings.add("Item 3");
	list2Strings.add("Item 5");
	list2Strings.add("Item 4");
	list2Strings.add("Item 6");		
               listPrimetime = (ListView) findViewById(R.id.listPrimetime);
               listPrimetime.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, list2Strings));
	setupGenericTab(TAG_PRIMETIME, R.string.tab_primetime, listPrimetime);
}  
private void setupGenericTab(String tag, int res, final View view){
	final TabHost host = getTabHost();
	final TabHost.TabContentFactory content = new TabHost.TabContentFactory(){
		@Override
		public View createTabContent(String arg0) {
			return view;
		}
	};

	host.addTab(host.newTabSpec(tag)
		.setContent(content));
}

Et dans l'implémentation de mon adapter :

      public View getView(int position, View convertView, ViewGroup parent) {


    View sv;
           if (convertView == null) {
               sv = mInflater.inflate(android.R.layout.simple_list_item_1, parent, false);
               ((TextView)sv).setText("Hello");
           } else {
               sv = (TextView) convertView;

           }

           return sv;
     }

J'ai regardé peu le code de ArrayAdapter mais ce qui fait que ça marche :(

Je réussit à résoudre le problème en mettant ma 2ème liste en invisible, mais je ne suis pas très satisfait de cette solution.

Quelqu'un aurait il une idée d'où vient le problème ?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...