Android入门之TabHost三(不用xml,纯java)

Android入门之TabHost三(不用xml,纯java)_第1张图片

 Android入门之TabHost三(不用xml,纯java)_第2张图片

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;

public class TabHostTestttActivity extends Activity {
	
	//Tab三要素
	TabHost tabHost=null;
	TabWidget tabWidget=null;
	FrameLayout fl=null;
	
	//view0用来盛放view1、view2、view3
	RelativeLayout view0=null;
	LinearLayout view1=null;//view1用来装入tabWidget
	LinearLayout view2=null;//view2用来盛放fl
	RelativeLayout view3=null;//view3用来盛放其他
	
	
	
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //第一步,定义tabHost
        tabHost=new TabHost(this);
        LinearLayout.LayoutParams lp_tabHost=new LinearLayout.LayoutParams( -1,-1);
        tabHost.setLayoutParams(lp_tabHost);
        
        //第二步,定义tabWidget、view1
        tabWidget=new TabWidget(this);
        tabWidget.setId(android.R.id.tabs);//注意ID的设置
        tabWidget.setLayoutParams(new LinearLayout.LayoutParams(-2,-2));
        
        view1=new LinearLayout(this);
        view1.setId(10);
        RelativeLayout.LayoutParams lp_view1=new RelativeLayout.LayoutParams(-2,-2);
        view1.setLayoutParams(lp_view1);
        view1.setOrientation(LinearLayout.VERTICAL);
        
        TextView tvxxx=new TextView(this);
        tvxxx.setId(100);
        tvxxx.setText("测试测试测试");
        tvxxx.setTextColor(Color.WHITE);
        tvxxx.setBackgroundColor(Color.BLUE);
        LinearLayout.LayoutParams lp_tvxxx=new LinearLayout.LayoutParams(-2,-2);
        tvxxx.setLayoutParams(lp_tvxxx);
        
        view1.addView(tvxxx);
        view1.addView(tabWidget);
        
        
        //第三步,定义fl、view2
        fl=new FrameLayout(this);
        fl.setId(android.R.id.tabcontent);//注意ID的设置
        fl.setLayoutParams(new LinearLayout.LayoutParams(-2,-2));
        
        TextView tv1=new TextView(this);
        tv1.setId(55);
        //更改个字体颜色
        tv1.setTextColor(Color.YELLOW);
        tv1.setText("窗前明月光\n疑是地上霜\n举头望明月\n低头思故乡");
        
        TextView tv2=new TextView(this);
        tv2.setId(66);
        tv2.setTextColor(Color.WHITE);
        tv2.setText("春眠不觉晓\n处处闻啼鸟\n以来风雨声\n花落知多少");
        
        fl.addView(tv1);
        fl.addView(tv2);

        //定义view2
        view2=new LinearLayout(this);
        view2.setId(20);
        RelativeLayout.LayoutParams lp_view2=new RelativeLayout.LayoutParams(-2,-2);
        view2.setLayoutParams(lp_view2);
        view2.setOrientation(LinearLayout.HORIZONTAL);
        view2.setGravity(Gravity.CENTER_VERTICAL);
        
        TextView tvyyy=new TextView(this);
        tvyyy.setId(200);
        tvyyy.setText("内容");
        view2.addView(tvyyy);
        view2.addView(fl);

        //第四步,定义view3
        view3=new RelativeLayout(this);
        view3.setId(30);
        RelativeLayout.LayoutParams lp_view3=new RelativeLayout.LayoutParams(-2,-2);
        view3.setLayoutParams(lp_view3);
        
        TextView tvzzz=new TextView(this);
        tvzzz.setId(300);
        tvzzz.setText("居中居中居中居中");
        
        view3.addView(tvzzz);
        
        //第五步,定义view0
        view0=new RelativeLayout(this);
        view0.setId(1);
        RelativeLayout.LayoutParams lp_view0=new RelativeLayout.LayoutParams(-1,-1);
        view0.setLayoutParams(lp_view0);
        
        //添加view1、2、3
         lp_view1.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
         lp_view1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
         view0.addView(view1,lp_view1);
         
         lp_view2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
         lp_view2.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
         view0.addView(view2,lp_view2);
         
         lp_view3.addRule(RelativeLayout.CENTER_IN_PARENT);
         view0.addView(view3,lp_view3);
        

        //第六步,tabHost添加view0
        tabHost.addView(view0);
        
        //同样,以上五步之后,才能调用setup()
        tabHost.setup();
        
        //重点:此步骤只能在setup()之后进行
        tabHost.addTab(tabHost.newTabSpec("tag1").setIndicator("静夜思").setContent(55));
        tabHost.addTab(tabHost.newTabSpec("tag2").setIndicator("春晓",this.getResources().getDrawable(R.drawable.ic_launcher)).setContent(66));
        
        setContentView(tabHost);
    }
}


其实最重要的就是在正确的地方调用setup()了。

TabWidget嵌套的话,则tab的内容就要转向Activity了。


你可能感兴趣的:(java,android,xml,测试,Class,import)