J'ai une TabActivity qui héberge de nombreux onglets. Chaque onglet fait référence à la même activité, mais la logique est effectuée à l'intérieur de l'activité qui détermine ce qui doit être chargé. Je voudrais que cela soit fait en passant un booléen à l'onglet respectif. Comment puis-je faire ceci?Comment puis-je transmettre des extras à une intention dans une TabActivity?
package com.stocktwits.activity;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
public class StockTwitsTabActivity extends TabActivity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stocktwits_tab_activity);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, StreamActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
intent.putExtra("reloadAll", true);
spec = tabHost.newTabSpec("all").setIndicator("All",res.getDrawable(R.drawable.icon)).setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, StreamActivity.class);
spec = tabHost.newTabSpec("home").setIndicator("Home",res.getDrawable(R.drawable.icon)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, StreamActivity.class);
spec = tabHost.newTabSpec("mentions").setIndicator("Mentions",res.getDrawable(R.drawable.icon)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, StreamActivity.class);
spec = tabHost.newTabSpec("directs").setIndicator("Directs",res.getDrawable(R.drawable.icon)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, StreamActivity.class);
spec = tabHost.newTabSpec("more").setIndicator("More",res.getDrawable(R.drawable.icon)).setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
}
}
Pourquoi utilisez-vous une activité à la place une vue si la vue est toujours le même pour chaque onglet? Je pense que vous pourriez utiliser 'android.widget.TabHost.OnTabChangeListener' et gérer ici le contenu de la vue principale –
pouvez-vous me donner un exemple d'un TabHost qui charge des vues au lieu des activités? –