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.

comments powered by Disqus

Featured

  • .NET Core Ranks High Among Frameworks in New Dev Survey

    .NET Core placed high in a web-dominated ranking of development frameworks published by CodinGame, which provides a tech hiring platform.

  • Here's a One-Stop Shop for .NET 5 Improvements

    Culled from reams of Microsoft documentation, here's a high-level summary of what's new for performance, networking, diagnostics and more, along with links to the nitty-gritty details for those wanting to dig in more.

  • Azure SQL Database Ranked Among Top 3 Databases of 2020

    Microsoft touted the inclusion of Azure SQL Database among the top three databases of 2020 in a popularity ranking by DB-Engines, which collects and manages information about database management systems, updating its lists monthly.

  • Time Tracker Says VS Code Is No. 1 Editor for Devs, Some Working 15+ Hours Per Day

    WakaTime, which does time tracking for programmers, released data for 2020 showing that Visual Studio Code is by far the top editor/IDE used by its coders, some of whom are hacking away for more than 15 hours per day.

Upcoming Events