bottomTabHost(默认选择第一个且文本变色)

Layout1.java

package com.example.bottomtabhost;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Layout1 extends Activity
{
    private TextView textView = null;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout1);
    }
}

Layout2.java 把上面的1改成2

Layout3.java 把上面的2改成3

MainActivity.java

package com.example.bottomtabhost;

import android.os.Bundle;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabWidget;
import android.widget.TextView;

public class MainActivity extends TabActivity
{

	private TabHost mTabHost;
	private TabWidget mTabWidget;
	private TextView tv;//tab内的文本
	
	@SuppressWarnings("deprecation")
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//设置选项卡头--->开始
		mTabHost = getTabHost();
		
		 /* 去除标签下方的白线 */
		mTabHost.setPadding(mTabHost.getLeft(), mTabHost.getTop(), mTabHost.getRight(),  mTabHost.getBottom()-5);
		
		//第一页的标签
		mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("layout1").setContent(new Intent(this, Layout1.class)));
	    //第二页的标签
		mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("layout2").setContent(new Intent(this, Layout2.class)));
	    //第三页的标签
		mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("layout3").setContent(new Intent(this, Layout3.class)));
		
	    /* 对Tab标签的定制 */
	    mTabWidget = mTabHost.getTabWidget();
	    for (int i = 0; i < mTabWidget.getChildCount(); i++)
		{
	    	/* 得到每个标签的视图 */
            View view = mTabWidget.getChildAt(i);
            //得到每个标签的文本 
            tv = (TextView) view.findViewById(android.R.id.title);
            /* 设置tab内字体的颜色 */
            tv.setTextColor(Color.rgb(49, 116, 171));
            /* 设置每个标签的背景 */
            if (mTabHost.getCurrentTab() == i)
            {
                view.setBackgroundDrawable(getResources().getDrawable(R.drawable.number_bg_pressed));
            }
            else
            {
                view.setBackgroundDrawable(getResources().getDrawable(R.drawable.number_bg));
            }
            /* 设置Tab间分割竖线的颜色 */
            // tabWidget.setBackgroundColor(Color.WHITE);
            /* 设置Tab间分割竖线的背景图片 */
            // tabWidget.setBackgroundResource(R.drawable.icon);
            /* 设置tab的高度 */
            mTabWidget.getChildAt(i).getLayoutParams().height = 30;
            
            /* 设置tab内字体的颜色 */
//            tv.setTextColor(Color.rgb(49, 116, 171));
		}//for
	    
	    //单独设置第一个选项卡的文本颜色
	    TextView tv1 =  (TextView) mTabHost.getChildAt(0).findViewById(android.R.id.title);
	    tv1.setTextColor(Color.BLACK);
	   
	    /* 当点击Tab选项卡的时候,更改当前Tab标签的背景 */
        mTabHost.setOnTabChangedListener(new OnTabChangeListener()
        {
            @Override
            public void onTabChanged(String tabId)
            {
                for (int i = 0; i < mTabWidget.getChildCount(); i++)
                {
                    View view = mTabWidget.getChildAt(i);
                    tv = (TextView) view.findViewById(android.R.id.title);
                    tv.setTextColor(Color.rgb(49, 116, 171));
                    if (mTabHost.getCurrentTab() == i)
                    {
                    	//mTabHost.getCurrentTabTag() 返回tab
                        view.setBackgroundDrawable(getResources().getDrawable(R.drawable.number_bg_pressed));
                        System.out.println("==点选时候的文本是"+tv.getText().toString());
                        System.out.println("==点选时候的id是"+tabId);
                        System.out.println("==点选时候的是"+mTabHost.getCurrentTab());
                        
                        //tv.setTextColor(Color.rgb(49, 116, 171));
                       tv.setTextColor(Color.BLACK);
                    }
                    else
                    {
                        view.setBackgroundDrawable(getResources().getDrawable(R.drawable.number_bg));
//                        tv.setTextColor(Color.rgb(49, 116, 171));
                    }
                }
            }
        });
        //设置选项卡头--->结束
	    
    }
		
}

activity_main.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="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <!-- 实现Tab标签的居底主要是通过设置属性 android:layout_weight="1" -->
        <!-- 还要注意FrameLayout标签的位置,要写在TabWidget标签的前面 -->

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true" />
    </LinearLayout>

</TabHost>


layout1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
    <TextView
    	android:id="@+id/text1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:layout_gravity="center"
    	android:text="这是第一页"
    	/>
</LinearLayout>

layout2.xml 改数字

layout3.xml 改数字 


你可能感兴趣的:(bottomTabHost(默认选择第一个且文本变色))