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)


    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",

    // Do the same for the other tabs
    intent = new Intent().SetClass(this, (new AlbumActivity()).Class);
    spec = tabHost.NewTabSpec("albums").SetIndicator("Albums",

    intent = new Intent().SetClass(this, (new SongActivity()).Class);
    spec = tabHost.NewTabSpec("songs").SetIndicator("Songs",

    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.