TabHost的应用(上)------第三日

今天回来的太晚了,晚上去K歌了。发现现在生活太萎靡了,虽然没有烂醉,但是也嗨的嗓子不舒服啊。好了不啰嗦了,直接上代码。2013年2月26日23:46:50

今晚的TabHost只能贴出部分代码了,因为我还没有写完成。这个分成两部分写吧。


TabHost主activity:MainActivity,里面包含了两个ActivityGroup,分别为OneGroupActivity和TwoActivity;另外OneGroupActivity里面包含里两个activity。

MainActivity.java

package com.lianjiao.sport.activity;

import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.TabActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.view.Window;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabSpec;
import android.widget.TextView;

import com.lianjiao.sport.R;
import com.lianjiao.sport.activity.tabHostActivity.OneGroupActivity;
import com.lianjiao.sport.activity.tabHostActivity.TwoGroupActivity;

@SuppressWarnings("deprecation")
public class MainActivity extends TabActivity {
	
	

	private TabHost m_tabHost;
	
	@SuppressLint("NewApi")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
	        .detectDiskReads()
	        .detectDiskWrites()
	        .detectAll()   // or .detectAll() for all detectable problems
	        .penaltyLog()
	        .build());
	        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
	        .detectLeakedSqlLiteObjects()
	        .detectLeakedClosableObjects()
	        .penaltyLog()
	        .penaltyDeath()
	        .build());
		//隐去标题栏(应用程序的名字)  
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		com.lianjiao.sport.activity.GlobalVariable.context=this;
		 //getTabHost返回的TabHost用于装载tabs 
	       m_tabHost= getTabHost();  
	       //addtabs,这里用于添加具体的Tabs,并用Tab触发相应的Activity 
		   addOneTab();
    	   addTwoTab(); 
	       //初始化设置一次标签背景
	        updateTabBackground(m_tabHost);
	      //  m_tabHost.setCurrentTab(1);//0-3
	        m_tabHost.setOnTabChangedListener(new  OnTabChangeListener() {
				public void onTabChanged(String tabId) {
					 updateTabBackground(m_tabHost);
				}
	        });
	        
	        //选择时背景更改。
	       
	      

	   } 
	
	public TabHost getM_tabHost() {
		return m_tabHost;
	}
	public void setM_tabHost(TabHost m_tabHost) {
		this.m_tabHost = m_tabHost;
	}
	
	   @Override
	public void finish() {
		   // 确认对话框
		   //System.out.println("退出程序!!!!!");
		   	  final AlertDialog isExit = new AlertDialog.Builder(this).create();
		   	  // 对话框标题
		   	  isExit.setTitle(R.string.sys_info);
		   	  // 对话框消息
		   	  isExit.setMessage(this.getString(R.string.is_exit));
		   	  // 实例化对话框上的按钮点击事件监听
		   	  DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
		   	   public void onClick(DialogInterface dialog, int which) {
		   	    switch (which) {
		   	    case AlertDialog.BUTTON1:// "确认"按钮退出程序		   	    	
		   	    	System.exit(0);
		   	     break;
		   	    case AlertDialog.BUTTON2:// "取消"第二个按钮取消对话框
		   	     isExit.cancel();
		   	     break;
		   	    default:
		   	     break;
		   	    }
		   	   }
		   	  };
		   	  // 注册监听
		   	  isExit.setButton(this.getString(R.string.ok), listener);
		   	  isExit.setButton2(this.getString(R.string.cancle), listener);
		   	  // 显示对话框
		   	  isExit.show();
		   	 
		
		
		
	}
	/**
	     * 更新Tab标签的背景图
	     * @param tabHost
	     */
	    private void updateTabBackground(final TabHost tabHost) {
	        for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
	            View vvv = tabHost.getTabWidget().getChildAt(i);
	            vvv.setMinimumWidth(500);	           
	            if (tabHost.getCurrentTab() == i) {
	                //选中后的背景
	                vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.nav_button_fourse));
	            } else {
	                //非选择的背景
	                vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.nav_button_unfourse));
	            }
	        }
	    }

	  
	      

	   public void addOneTab(){  

	       Intent intent = new Intent();  

	       intent.setClass(MainActivity.this,OneGroupActivity.class); 
	       
	       TabSpec spec = m_tabHost.newTabSpec("One"); 

	       TextView t1 = new TextView(this);
	       t1.setText(R.string.one);
	       t1.setTextSize(30);
	       t1.setPadding(10, 10, 10, 10);
	       spec.setIndicator(t1);
	       //spec.setIndicator(getString(R.string.one),null);
	       
	       spec.setContent(intent);         

	       m_tabHost.addTab(spec); 

	   } 

	   public void addTwoTab(){  
	       Intent intent = new Intent();  
	       intent.setClass(MainActivity.this,TwoGroupActivity.class); 
	       TabSpec spec = m_tabHost.newTabSpec("Two"); 
	       TextView t2 = new TextView(this);
	       t2.setText(R.string.two);
	       t2.setTextSize(30);
	       t2.setPadding(10, 10, 10, 10);
	       spec.setIndicator(t2);
	       spec.setContent(intent);         
	       m_tabHost.addTab(spec); 

	   } 
	  
	   
	  
}


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:background="@drawable/tab_background"

    android:layout_width="fill_parent" 

    android:layout_height="fill_parent"> 

    <LinearLayout 

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

	      <LinearLayout 
	
	        android:orientation="horizontal" 
	        
	        android:background="@drawable/nav_background"
	        
	        android:layout_width="fill_parent" 
	
	        android:layout_height="wrap_content">  
				        
						<Button
						        android:id="@+id/cancle"
						        android:background="@drawable/nav_buttonbackground"
						        android:layout_width="80dp"
						        android:layout_height="wrap_content"
						        android:layout_marginTop="5dp"
						        android:layout_marginLeft="20dp"
						        android:text="weizhi" />
	          
				        <TabWidget
				            android:id="@android:id/tabs"
				            android:layout_width="300dp"
				            android:layout_height="wrap_content"
				            android:layout_marginLeft="350dp"
				            android:paddingTop="2dip" >
				        </TabWidget>
				        
					   <Button
					        android:id="@+id/cancle1"
					        android:background="@drawable/nav_buttonbackground"
						    android:layout_width="80dp"
					        android:layout_height="wrap_content"
					        android:layout_marginTop="5dp"
					        android:layout_marginLeft="400dp"
					        android:text="lianjiao" />

           </LinearLayout> 

        <FrameLayout

			android:id="@android:id/tabcontent" 

            android:layout_width="fill_parent" 

            android:layout_height="0dip" 

            android:layout_weight="1"

        />      

    </LinearLayout> 

</TabHost>

明天加个班把代码贴完,并贴出效果图吧。现在做的这些都是一些初步的框架,对于传感器的使用我还是比较薄弱的。最近也要加紧练习了。现在等于说完全是在整理老代码,说来也怪,最近每天晚上都有一些事情,耽搁了。万物安!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值