Mono for Android UI Blueprint: Listing 7.
Coding for Tabs.
[Activity(Label = "Tabbed Activity", MainLauncher=true)]
public class Activity1 : TabActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
var res = this.Resources; // Resource object to get Drawables
TabHost tabHost = this.TabHost; // 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();
var aa = new ArtistsActivity();
intent.SetClass(this, aa.Class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.NewTabSpec("artists").SetIndicator("Artists",
res.GetDrawable(Resource.Drawable.ic_tab_artists)).SetContent(intent);
tabHost.AddTab(spec);
// Do the same for the other tabs
intent = new Intent().SetClass(this, (new AlbumActivity()).Class);
spec = tabHost.NewTabSpec("albums").SetIndicator("Albums",
res.GetDrawable(Resource.Drawable.ic_tab_albums))
.SetContent(intent);
tabHost.AddTab(spec);
intent = new Intent().SetClass(this, (new SongActivity()).Class);
spec = tabHost.NewTabSpec("songs").SetIndicator("Songs",
res.GetDrawable(Resource.Drawable.ic_tab_songs))
.SetContent(intent);
tabHost.AddTab(spec);
tabHost.CurrentTab = -1;
}
}
About the Author
Wallace (Wally) B. McClure has authored books on iPhone programming with Mono/Monotouch, Android programming with Mono for Android, application architecture, ADO.NET, SQL Server and AJAX. He's a Microsoft MVP, an ASPInsider and a partner at Scalable Development Inc. He maintains a blog, and can be followed on Twitter.