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

  • Full-Stack with a Side of Copilot: Building and Deploying an App the AI-Accelerated Way

    In this Q&A, developer and VSLive! speaker Esteban Garcia explains how GitHub Copilot can accelerate the full software development lifecycle -- from architecture and code to tests, CI/CD, and Azure deployment -- and how to use it as a repeatable engineering workflow rather than just a faster autocomplete tool.

  • VS Code 1.127 Further Integrates Advanced Browser-AI Tech

    Microsoft's July 1 Visual Studio Code update continues a recent push to make the editor's integrated browser a more capable development surface -- and a more useful tool for AI agents.

  • Support Vector Regression with SGD Training Using C#

    Support vector regression can predict numeric values effectively, and this article shows how to implement and train a kernel SVR model in C# using stochastic sub-gradient descent.

  • New GitHub Switch Limits Repo Issue Creation to Collaborators Only

    After publicly touting pull request limits as a way to cut maintainer noise, GitHub is taking the same idea further with a new setting that lets repository admins restrict issue creation to collaborators only.

Subscribe on YouTube