diff options
Diffstat (limited to 'templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl')
-rw-r--r-- | templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl b/templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl new file mode 100644 index 0000000..ab11a7f --- /dev/null +++ b/templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl @@ -0,0 +1,94 @@ +package ${packageName}; + +import android.app.ActionBar; +import android.app.FragmentTransaction; +import android.content.Context; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; +import android.support.v4.app.FragmentManager; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +public class ${activityClass} extends FragmentActivity implements ActionBar.TabListener { + + private static final String STATE_SELECTED_NAVIGATION_ITEM = "selected_navigation_item"; + + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.${layoutName}); + + // Set up the action bar. + final ActionBar actionBar = getActionBar(); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); + + // For each of the sections in the app, add a tab to the action bar. + actionBar.addTab(actionBar.newTab().setText(R.string.title_section1).setTabListener(this)); + actionBar.addTab(actionBar.newTab().setText(R.string.title_section2).setTabListener(this)); + actionBar.addTab(actionBar.newTab().setText(R.string.title_section3).setTabListener(this)); + } + + @Override + public void onRestoreInstanceState(Bundle savedInstanceState) { + if (savedInstanceState.containsKey(STATE_SELECTED_NAVIGATION_ITEM)) { + getActionBar().setSelectedNavigationItem( + savedInstanceState.getInt(STATE_SELECTED_NAVIGATION_ITEM)); + } + } + + @Override + public void onSaveInstanceState(Bundle outState) { + outState.putInt(STATE_SELECTED_NAVIGATION_ITEM, + getActionBar().getSelectedNavigationIndex()); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.${menuName}, menu); + return true; + } + + @Override + public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { + } + + @Override + public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { + // When the given tab is selected, show the tab contents in the container + Fragment fragment = new DummySectionFragment(); + Bundle args = new Bundle(); + args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, tab.getPosition() + 1); + fragment.setArguments(args); + getSupportFragmentManager().beginTransaction() + .replace(R.id.container, fragment) + .commit(); + } + + @Override + public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { + } + + /** + * A dummy fragment representing a section of the app, but that simply displays dummy text. + */ + public static class DummySectionFragment extends Fragment { + public DummySectionFragment() { + } + + public static final String ARG_SECTION_NUMBER = "section_number"; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + TextView textView = new TextView(getActivity()); + textView.setGravity(Gravity.CENTER); + Bundle args = getArguments(); + textView.setText(Integer.toString(args.getInt(ARG_SECTION_NUMBER))); + return textView; + } + } +} |