`
mmdev
  • 浏览: 12920199 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android游戏开发系统控件-TabSpec与TabHost

 
阅读更多

Android游戏开发系统控件-TabSpec与TabHost

2012/5/12 星期六

5.12 汶川地震四周年,四年了,时间飞快,再大的苦难都属于过去,现在只着眼于眼前,把握现在,能让自己过得开心不后悔就行了。加油吧!!!

今天学习了另一个比较特殊的控件:TabSpec(分页),TabHost(分页的集合)

TabHost相当于浏览器中分页的集合,而TabSpec则相当于浏览器中的每个分页;在Android中,每一个TabSpec分页可以是一个组件,也可以是一个布局,然后将每个分页装入TabHost中,TabHost即可将其中的每个分页一并显示出来。

创建项目:TabProject

向项目资源中添加了两张图片资源:bg.png与bg2.png.

作者:wwj

功能:实现在布局中进行页面切换

项目运行结果截图:

修改代码:

=>>布局文件main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:background="@drawable/bg2">
	<Button 
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="@string/btn1"
	    android:id="@+id/btn1"
	    />
	<EditText 
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="@string/et1"
	    android:id="@+id/et1"
	    />
	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	    android:orientation="vertical"
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent"
	    android:id="@+id/mylayout"
	    android:background="@drawable/bg"
	    >
	    <Button
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	        android:text="@string/btn2"
	        />
	    <EditText
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	        android:text="@string/et2"
	        />
	</LinearLayout>

</LinearLayout>

=>>string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, TabProjectActivity!</string>
    <string name="app_name">TabProject</string>
    <string name="btn1">This is Tab1</string>
    <string name="btn2">This is Tab3</string>
    <string name="et1">This is Tab2</string>
    <string name="et2">This is Tab3</string>

</resources>


=>>TabProjectActivity.java

package com.tabHost;

import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabSpec;
import android.widget.Toast;

public class TabProjectActivity extends TabActivity implements OnTabChangeListener{
	private TabSpec ts1,ts2,ts3;	//声明3个分页
	private TabHost tableHost;		//分页菜单(tab容器)
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        tableHost = this.getTabHost();//实例(分页)菜单
        //利用LayoutInflater将布局与分页菜单一起显示
        LayoutInflater.from(this).inflate(R.layout.main, tableHost.getTabContentView());
        ts1 = tableHost.newTabSpec("tabOne");//实例化一个分页
        ts1.setIndicator("Tab1");//设置此页显示的标题
        ts1.setContent(R.id.btn1);//设置此分页的资源id
        ts2 = tableHost.newTabSpec("tabTwo");
        //设置此分页显示的标题和图标
        ts2.setIndicator("Tab2",getResources().getDrawable(R.drawable.ic_launcher));
        ts2.setContent(R.id.et1);
        ts3 = tableHost.newTabSpec("tavThree");
        ts3.setIndicator("Tab3");
        ts3.setContent(R.id.mylayout);//设置此分页的布局id
        tableHost.addTab(ts1);//菜单中添加ts1分页
        tableHost.addTab(ts2);
        tableHost.addTab(ts3);
        tableHost.setOnTabChangedListener(this);//这次监听器      
        }
    	public void onTabChanged(String tabId){
    		if(tabId.equals("tabOne")){
    			Toast.makeText(this, "分页1", Toast.LENGTH_LONG).show();
    		}
    		if(tabId.equals("tabTwo")){
    			Toast.makeText(this, "分页2", Toast.LENGTH_LONG).show();
    		}
    		if(tabId.equals("tabThree")){
    			Toast.makeText(this,"分页3",Toast.LENGTH_LONG).show();
    		}
    	}
    	
}


自动添加的资源文件R.java

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.tabHost;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int bg=0x7f020000;
        public static final int bg2=0x7f020001;
        public static final int ic_launcher=0x7f020002;
    }
    public static final class id {
        public static final int btn1=0x7f050000;
        public static final int et1=0x7f050001;
        public static final int mylayout=0x7f050002;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int btn1=0x7f040002;
        public static final int btn2=0x7f040003;
        public static final int et1=0x7f040004;
        public static final int et2=0x7f040005;
        public static final int hello=0x7f040000;
    }
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics