切换卡布局TabHost

定义一个java继承一个TabActivity(此方法过时!)

package com.example.ui5;

import android.app.TabActivity;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class Usectivity extends TabActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_usectivity);
        //获取选项卡布局(在xml里关联系统id就可以知道getTabHost获取的是哪一个的选卡布局)
        TabHost host = getTabHost();//获取布局的操作
        //构建一个选项卡          表示         setIndicator(名字,图标)              设置内容
        TabSpec setContent = host.newTabSpec("001").setIndicator("卡通").setContent(R.id.tab_pem_1);
        TabSpec setContent2 = host.newTabSpec("002").setIndicator("真人").setContent(R.id.tab_pem_2);
        //设置选项
        host.addTab(setContent);
        host.addTab(setContent2);
        
    }
}

xml里面写


    


    
     





运行效果

image.png

另一种的方式(不继承用了setup获取操作)

java主打

package com.example.tabhost_text1;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class MainActivity extends Activity {
    TabHost tabHost;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tabHost=(TabHost) findViewById(R.id.tabhost);
        tabHost.setup();//找到tabwidget和framelayout
        //添加标签页
        TabSpec tab1=tabHost.newTabSpec("tab1");
        //一参是标签子,二参是图片
        tab1.setIndicator("首页",getResources().getDrawable(R.drawable.i6));
        //指定标签                    加载FrameLayout布局里面的指定内容
        tab1.setContent(R.id.line1);
        tabHost.addTab(tab1);//添加标签 
        
        
        //添加标签页
                TabSpec tab2=tabHost.newTabSpec("tab2");
                //一参是标签子,二参是图片
                tab2.setIndicator("第二页",getResources().getDrawable(R.drawable.i7));
                //指定标签                    加载FrameLayout布局里面的指定内容
                tab2.setContent(R.id.line2);
                tabHost.addTab(tab2);//添加标签 
    
                
                //添加标签页
                TabSpec tab3=tabHost.newTabSpec("tab2");
                //一参是标签子,二参是图片
                tab3.setIndicator("第三页",getResources().getDrawable(R.drawable.i8));
                //指定标签                    加载FrameLayout布局里面的指定内容
                tab3.setContent(R.id.line3);
                tabHost.addTab(tab3);//添加标签 
                
    }
}

主xml打注意系统的id


    
        
        
            
            
                
                
            
                
            
                
            
                
            
        
    

效果图(老版本的Android会显示图片)

image.png

自定义标签的样式:tab1.setIndicator(createView("首页"));里面写了一个view的方法

View createView(String text){//返回一个viwe的对象
        View view = View.inflate(this, R.layout.tab, null);//加载布局
        TextView textview=(TextView)view.findViewById(R.id.textview);//初始化数据
        textview.setText(text);//设置文字
        return view;//返回的是view把R.layout.tab布局全部反会了
    }

tab.xml写


    

bg.xml



    



image.png

你可能感兴趣的:(切换卡布局TabHost)