/** * Blog Post: * http://devleader.ca/2013/11/04/fragments-tabbed-android-user-interface * * Layouts: * activity_main.xml: http://pastebin.com/kj8M38Ze * fragment_tabs.xml: http://pastebin.com/0b7HAeAK * simple_tab.xml: http://pastebin.com/9SqLbS0X * * Classes: * MainActivity.java: http://pastebin.com/eBv3H775 * SimpleTabDefinition.java: http://pastebin.com/wW3WCcy9 * TabDefinition.java: http://pastebin.com/KSRV2f3U * TabsFragment.java: http://pastebin.com/9Asv7AVH */ package com.devleader.tab_fragment_tutorial; import java.util.UUID; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * A class that defines a UI tab. */ public abstract class TabDefinition { // // Fields // private final int _tabContentViewId; private final String _tabUuid; // // Constructors // /** * The constructor for {@link TabDefinition}. * @param tabContentViewId The layout ID of the contents to use when the tab is active. */ public TabDefinition(int tabContentViewId) { _tabContentViewId = tabContentViewId; _tabUuid = UUID.randomUUID().toString(); } // // Exposed Members // /** * Gets the ID of the tab's content {@link View}. * @return The ID of the tab's content {@link View}. */ public int getTabContentViewId() { return _tabContentViewId; } /** * Gets the unique identifier for the tab. * @return The unique identifier for the tab. */ public String getId() { return _tabUuid; } /** * Gets the {@link Fragment} to use for the tab. * @return The {@link Fragment} to use for the tab. */ public abstract Fragment getFragment(); /** * Called when creating the {@link View} for the tab control. * @param inflater The {@link LayoutInflater} used to create {@link View}s. * @param tabsView The {@link View} that holds the tab {@link View}s. * @return The tab {@link View} that will be placed into the tabs {@link ViewGroup}. */ public abstract View createTabView(LayoutInflater inflater, ViewGroup tabsView); }