/*
 * Copyright (C) 2006 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.app;

import android.os.Bundle;
import android.view.View;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;

For apps developing against VERSION_CODES.HONEYCOMB or later, tabs are typically presented in the UI using the new ActionBar.newTab() and related APIs for placing tabs within their action bar area.

Deprecated:New applications should use Fragments instead of this class; to continue to run on older devices, you can use the v4 support library which provides a version of the Fragment API that is compatible down to VERSION_CODES.DONUT.
/** * <p>For apps developing against {@link android.os.Build.VERSION_CODES#HONEYCOMB} * or later, tabs are typically presented in the UI using the new * {@link ActionBar#newTab() ActionBar.newTab()} and * related APIs for placing tabs within their action bar area.</p> * * @deprecated New applications should use Fragments instead of this class; * to continue to run on older devices, you can use the v4 support library * which provides a version of the Fragment API that is compatible down to * {@link android.os.Build.VERSION_CODES#DONUT}. */
@Deprecated public class TabActivity extends ActivityGroup { private TabHost mTabHost; private String mDefaultTab = null; private int mDefaultTabIndex = -1; public TabActivity() { }
Sets the default tab that is the first tab highlighted.
Params:
  • tag – the name of the default tab
/** * Sets the default tab that is the first tab highlighted. * * @param tag the name of the default tab */
public void setDefaultTab(String tag) { mDefaultTab = tag; mDefaultTabIndex = -1; }
Sets the default tab that is the first tab highlighted.
Params:
  • index – the index of the default tab
/** * Sets the default tab that is the first tab highlighted. * * @param index the index of the default tab */
public void setDefaultTab(int index) { mDefaultTab = null; mDefaultTabIndex = index; } @Override protected void onRestoreInstanceState(Bundle state) { super.onRestoreInstanceState(state); ensureTabHost(); String cur = state.getString("currentTab"); if (cur != null) { mTabHost.setCurrentTabByTag(cur); } if (mTabHost.getCurrentTab() < 0) { if (mDefaultTab != null) { mTabHost.setCurrentTabByTag(mDefaultTab); } else if (mDefaultTabIndex >= 0) { mTabHost.setCurrentTab(mDefaultTabIndex); } } } @Override protected void onPostCreate(Bundle icicle) { super.onPostCreate(icicle); ensureTabHost(); if (mTabHost.getCurrentTab() == -1) { mTabHost.setCurrentTab(0); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); String currentTabTag = mTabHost.getCurrentTabTag(); if (currentTabTag != null) { outState.putString("currentTab", currentTabTag); } }
Updates the screen state (current list and other views) when the content changes.
See Also:
  • onContentChanged.onContentChanged()
/** * Updates the screen state (current list and other views) when the * content changes. * *@see Activity#onContentChanged() */
@Override public void onContentChanged() { super.onContentChanged(); mTabHost = findViewById(com.android.internal.R.id.tabhost); if (mTabHost == null) { throw new RuntimeException( "Your content must have a TabHost whose id attribute is " + "'android.R.id.tabhost'"); } mTabHost.setup(getLocalActivityManager()); } private void ensureTabHost() { if (mTabHost == null) { this.setContentView(com.android.internal.R.layout.tab_content); } } @Override protected void onChildTitleChanged(Activity childActivity, CharSequence title) { // Dorky implementation until we can have multiple activities running. if (getLocalActivityManager().getCurrentActivity() == childActivity) { View tabView = mTabHost.getCurrentTabView(); if (tabView != null && tabView instanceof TextView) { ((TextView) tabView).setText(title); } } }
Returns the TabHost the activity is using to host its tabs.
Returns:the TabHost the activity is using to host its tabs.
/** * Returns the {@link TabHost} the activity is using to host its tabs. * * @return the {@link TabHost} the activity is using to host its tabs. */
public TabHost getTabHost() { ensureTabHost(); return mTabHost; }
Returns the TabWidget the activity is using to draw the actual tabs.
Returns:the TabWidget the activity is using to draw the actual tabs.
/** * Returns the {@link TabWidget} the activity is using to draw the actual tabs. * * @return the {@link TabWidget} the activity is using to draw the actual tabs. */
public TabWidget getTabWidget() { return mTabHost.getTabWidget(); } }