2010-10-08 15:24:39 |分类: Android |标签: tabhost tabwidget fill_parent android intent | 字号 订阅


Android选项卡(TabWidget)应用_第1张图片

步骤

1.建立两个Activity,作为tab内容 (我这里是OneActivity、TestActivity)

public class OneActivity extends Activity {    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);         TextView textview = new TextView(this);        textview.setText("This is the Artists tab");        setContentView(textview);    }}

2.在layout文件夹中建立tab.xml用于怎样显示tab页面

注意:TabHost ,TabWidget ,FrameLayout的ID必须分别为@android:id/tabhost,@android:id/tabs,@android:id/tabcontent
另 外还要注意一下android:layout_width宽度和android:layout_height高度的取值,还要LinearLayout的 android:orientation=”vertical”(LinearLayout默认是横向的)当你看到布局和我不一样时你就要考虑一下这里是 不是错了。(= =!因为我错过)

<?xml version="1.0" encoding="utf-8"?><TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  >  <TabWidget android:id="@android:id/tabs"   android:layout_width="fill_parent" android:layout_height="wrap_content"></TabWidget>   <FrameLayout            android:id="@android:id/tabcontent"            android:layout_width="fill_parent"            android:layout_height="fill_parent"            android:padding="5dp" /> </LinearLayout> </TabHost> 

3.新建一个类TabWidget.java,继承TabActivity类

package com.fatkun; import android.app.TabActivity;import android.content.Intent;import android.content.res.Resources;import android.os.Bundle;import android.widget.TabHost;import android.widget.TabHost.TabSpec; public class TabWidget extends TabActivity {  /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.tab);//这里使用了上面创建的xml文件(Tab页面的布局)     Resources res = getResources(); // Resource object to get Drawables     TabHost tabHost = getTabHost();  // The activity TabHost     TabSpec spec;     Intent intent;  // Reusable Intent for each tab    //第一个TAB     intent = new Intent(this,OneActivity.class);//新建一个Intent用作Tab1显示的内容     spec = tabHost.newTabSpec("tab1")//新建一个 Tab     .setIndicator("Tab1", res.getDrawable(android.R.drawable.ic_media_play))//设置名称以及图标     .setContent(intent);//设置显示的intent,这里的参数也可以是R.id.xxx     tabHost.addTab(spec);//添加进tabHost      //第二个TAB     intent = new Intent(this,TestActivity.class);//第二个Intent用作Tab1显示的内容     spec = tabHost.newTabSpec("tab2")//新建一个 Tab     .setIndicator("Tab2", res.getDrawable(android.R.drawable.ic_menu_camera))//设置名称以及图标     .setContent(intent);//设置显示的intent,这里的参数也可以是R.id.xxx     tabHost.addTab(spec);//添加进tabHost      tabHost.setCurrentTab(1); } }

4.最后一步,在AndroidManifest.xml加入你的Activity

android:theme=”@android:style/Theme.NoTitleBar”是可以使得TabWidget窗口没有标题,多点空间显示

<activity android:name="TabWidget" android:theme="@android:style/Theme.NoTitleBar"></activity>     <activity android:name="OneActivity"></activity>     <activity android:name="TestActivity"></activity> 

1、选项卡中的布局如果想从setContextView(R.layout.tab)指定,那么xml配置文件应该如下编写:
<?xml version="1.0" encoding="utf-8"?>
<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_width="fill_parent"
android:layout_height="fill_parent">
<!-- 如果代码中使用setContextView()指定布局文件,必须加入该控件的声明,否则无法运行!而且TabWidget后需要使用Framelayout布局 -->
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
..................................
这样才可以。
2、如果在代码中不采取setContextView()方式加载布局,则在程序,动态选择布局:
TabHost mTobHost=getTabHost();
LayoutInflater.from(this).inflate(R.layout.main,mTobHost.getTabContentView(),true);
mTobHost.addTab(mTobHost.newTabSpec("---tab1").setIndicator("TAB1").setContent(R.id.txtOne));
mTobHost.addTab(mTobHost.newTabSpec("---tab2").setIndicator("TAB2").setContent(R.id.txtTwo));
mTobHost.addTab(mTobHost.newTabSpec("---tab3").setIndicator("TAB3").setContent(R.id.txtThree));
mTobHost.setCurrentTab(0);
这样完成。
如果想实现采取第一种方式实现选项卡位于屏幕的下方,将布局方式为RelativeLayout,同时设置TabWidget的 android:layout_alignParentBottom="true"。


转自于:http://hi.baidu.com/%B0%AC%B0%AC%C1%DC%C1%DC/blog/item/6570a33723833c86a61e12b3.html

更多相关文章

  1. android中加载assets中的资源文件
  2. Android开发 - 丰富常用的颜色文件colors.xml
  3. 初学Android,五大布局对象(六)
  4. 学习Android之setDataAndType(利用第三方应用程序打开各种文件)
  5. Android UI设计的三种常见布局(LinearLayout、RelativeLayout、Fr
  6. 根据文件名称修改安卓默认的蓝牙接收文件地址

随机推荐

  1. android复制数据库到SD卡(网上搜集,未经验
  2. Android中通过Intent 调用图片、视频、音
  3. Android深入探究-- 实现即时拍照并上传
  4. [Android]PhoneGap源码分析——CallbackS
  5. Android(安卓)getResources的作用和需要
  6. android 横屏重启的解决方案
  7. Android四大基本组件介绍与生命周期
  8. android之ListView和SimpleAdapter的组合
  9. Android(安卓)强制设置横屏或竖屏 设置全
  10. 系出名门Android(7) - 控件(View)