实现tabView 一个页面内有有多个子页

来源:互联网 发布:c语言中volatile byte 编辑:程序博客网 时间:2024/04/30 01:51

比如一个页面内有两个子页

需要3个activity:

第一个装载了后两个子页:

<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:orientation="vertical"
       android:layout_height="fill_parent"
       android:layout_width="fill_parent"
       android:padding="5dp">   
       <TabWidget 
           android:id="@android:id/tabs"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"/>      
           <FrameLayout android:id="@android:id/tabcontent"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent">  
           </FrameLayout>   
       </LinearLayout>
</TabHost>


第二个第三个都是一个普通的Activity


在第一个页面通过以下函数,将两个子页添加到Tab中:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//得到TabHost对象,针对TabActivity的操作通常由这个对象完成
TabHost tabHost=getTabHost();
//生成一个Intent对象 该对象指向一个activity
Intent remoteIntent=new Intent();
remoteIntent.setClass(this, RemoteMp3ListActivity.class);

//生成一个TaSpec对象,这个对象代表一页
TabHost.TabSpec remoteSpec= tabHost.newTabSpec("网络歌曲");
//获得系统内置图标
Resources res=getResources();
//设置该页的indicator
remoteSpec.setIndicator("网络歌曲",res.getDrawable(android.R.drawable.stat_sys_download));
//设置该页内容
remoteSpec.setContent(remoteIntent);
//将设置好的页面添加到 tabHost中
tabHost.addTab(remoteSpec);

//生成一个Intent对象 该对象指向一个activity
Intent localIntent=new Intent();
localIntent.setClass(this, LocalMp3ListActivity.class);

//生成一个TaSpec对象,这个对象代表一页
TabHost.TabSpec localSpec= tabHost.newTabSpec("本地歌曲");
//设置该页的indicator
localSpec.setIndicator("本地歌曲",res.getDrawable(android.R.drawable.stat_sys_upload));
//设置该页内容
localSpec.setContent(localIntent);
//将设置好的页面添加到 tabHost中
tabHost.addTab(localSpec);




}



原创粉丝点击