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

  • Visual Studio 'Tea & Technology' Video Miniseries Starts Next Week

    The goal of the miniseries is to provide an insider's snapshot look at some of the people who contribute to shaping the Visual Studio IDE every day.

  • Microsoft Releases OpenJDK 21 Build for Java Jockeys

    Microsoft today announced its "Microsoft Build of OpenJDK 21," taking advantage of new features and functionality in Java 21.

  • 'Dev Home' Update Leads Developer Goodies in AI-Powered Windows 11 Update

    Along with today's new AI-powered Windows 11 update come new goodies for developers, including a new edition of Dev Home, a preview offering described as a "control center" providing coding-focused features and functionality.

  • Community Dev Gives VS Code Python Some YAPF

    The latest update to Python in Visual Studio Code includes a new extension for Python formatting that was contributed by a member of the open source community.

Subscribe on YouTube