<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android"android:id="@android:id/tabhost"android:layout_width="match_parent"android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"><TabWidget android:id="@android:id/tabs"android:layout_width="match_parent"android:layout_height="wrap_content" /><FrameLayout android:id="@android:id/tabcontent"android:layout_width="match_parent"android:layout_height="0dip"android:layout_weight="1" /></LinearLayout> </TabHost>inner.xml文件:
<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android"android:id="@android:id/tabhost"android:layout_width="match_parent"android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"><FrameLayout android:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="0dip"android:layout_weight="1" /><TabWidget android:id="@android:id/tabs"android:layout_width="fill_parent"android:layout_height="wrap_content" /></LinearLayout> </TabHost>Main.java (主Activity类):
package com.android.test;import android.app.Activity; import android.app.TabActivity; import android.content.Intent; import android.os.Bundle; import android.provider.CallLog.Calls; import android.provider.Contacts.Intents.UI; import android.view.Window; import android.widget.TabHost;public class Main extends TabActivity implements TabHost.OnTabChangeListener {private static final int TAB_INDEX_DIALER = 0;private static final int TAB_INDEX_CALL_LOG = 1;private static final int TAB_INDEX_CONTACTS = 2;private static final int TAB_INDEX_FAVORITES = 3; private TabHost mTabHost;@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);final Intent intent = getIntent();requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.main);mTabHost = getTabHost(); mTabHost.setOnTabChangedListener(this);// Setup the tabs setupDialerTab(); setupCallLogTab(); setupContactsTab(); setupFavoritesTab();setCurrentTab(intent);} public void onTabChanged(String tabId) {Activity activity = getLocalActivityManager().getActivity(tabId);if (activity != null) { activity.onWindowFocusChanged(true);}} private void setupCallLogTab() {// Force the class since overriding tab entries doesn"t workIntent intent = new Intent("com.android.phone.action.RECENT_CALLS"); intent.setClass(this, Inner.class);mTabHost.addTab(mTabHost.newTabSpec("call_log").setIndicator("通话记录",getResources().getDrawable(R.drawable.ic_tab_unselected_recent)).setContent(intent)); }private void setupDialerTab() { Intent intent = new Intent("com.android.phone.action.TOUCH_DIALER"); intent.setClass(this, Inner.class);mTabHost.addTab(mTabHost.newTabSpec("dialer") .setIndicator("拨号", getResources().getDrawable(R.drawable.ic_tab_unselected_dialer)) .setContent(intent));} private void setupContactsTab() { Intent intent = new Intent(UI.LIST_DEFAULT); intent.setClass(this, Main.class);mTabHost.addTab(mTabHost.newTabSpec("contacts") .setIndicator("通讯录", getResources().getDrawable(R.drawable.ic_tab_unselected_contacts)) .setContent(intent));} private void setupFavoritesTab() { Intent intent = new Intent(UI.LIST_STREQUENT_ACTION); intent.setClass(this, Inner.class);mTabHost.addTab(mTabHost.newTabSpec("favorites") .setIndicator("收藏", getResources().getDrawable(R.drawable.ic_tab_unselected_starred)) .setContent(intent));} /** * Sets the current tab based on the intent"s request type * * @param intent Intent that contains information about which tab should be selected */private void setCurrentTab(Intent intent) { // Dismiss menu provided by any children activities Activity activity = getLocalActivityManager(). getActivity(mTabHost.getCurrentTabTag()); if (activity != null) {activity.closeOptionsMenu(); }// Tell the children activities that they should ignore any possible saved // state and instead reload their state from the parent"s intent intent.putExtra("", true);// Choose the tab based on the inbound intent String componentName = intent.getComponent().getClassName(); if (getClass().getName().equals(componentName)) {if (false) { //in a call, show the dialer tab(which allows going back to the call) mTabHost.setCurrentTab(TAB_INDEX_DIALER);} else if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) { // launched from history (long-press home) --> nothing to change} else if (true) { // The dialer was explicitly requested mTabHost.setCurrentTab(TAB_INDEX_DIALER);} }} } Inner.java类:package com.android.test;import android.app.TabActivity; import android.content.Intent; import android.os.Bundle; import android.view.Window; import android.widget.TabHost; import android.widget.TabWidget; import android.widget.TextView;public class Inner extends TabActivity implements TabHost.OnTabChangeListener {private static final int TAB_INDEX_ALL = 0;private static final int TAB_INDEX_MISSED = 1;private static final int TAB_INDEX_OUTGOING = 2;private static final int TAB_INDEX_RECEIVED = 3; private TabHost mTabHost;private TabWidget mTabWidget;@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.inner);mTabHost = getTabHost(); mTabHost.setOnTabChangedListener(this);setupTabs(); mTabWidget = mTabHost.getTabWidget(); mTabWidget.setStripEnabled(false);for (int i = 0; i < mTabWidget.getChildCount(); i++) { TextView tv = (TextView) mTabWidget.getChildAt(i).findViewById(android.R.id.title);tv.setTextColor(this.getResources().getColorStateList(android.R.color.white));tv.setPadding(0, 0, 0,(int) tv.getTextSize());tv.setText("Tab" + i);mTabWidget.getChildAt(i).getLayoutParams().height =(int ) (3* tv.getTextSize()); mTabWidget.getChildAt(i).setBackgroundResource(R.drawable.tab_bg); }} public void onTabChanged(String tabId) { } private void setupTabs() { mTabHost.addTab(mTabHost.newTabSpec("all").setIndicator( getString(R.string.inner)).setContent( new Intent(this, Other.class))); mTabHost.addTab(mTabHost.newTabSpec("Missed").setIndicator( getString(R.string.inner)).setContent( new Intent(this, Other.class))); mTabHost.addTab(mTabHost.newTabSpec("Outgoing").setIndicator( getString(R.string.inner)).setContent( new Intent(this, Other.class))); mTabHost.addTab(mTabHost.newTabSpec("Received").setIndicator( getString(R.string.inner)).setContent( new Intent(this, Other.class))); } } 效果图如下:
以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。