Android中的基本选项卡设置不起作用

时间:2013-04-23 13:44:43

标签: android android-layout android-widget

我正在学习Android开发。目前,我正在尝试获得基本的标签屏幕设置。为了做到这一点,我创建了以下axml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:background="#fff"
  android:layout_height="fill_parent">
  <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:background="#2D2D2D"
    android:layout_height="50dip"
    android:minHeight="50dip">
      <LinearLayout
        android:orientation="horizontal"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:id="@+id/linearLayout1">
    <TextView
          android:text="@string/my"
          android:textAppearance="?android:attr/textAppearanceSmall"
          android:layout_weight="1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/textView1"
          android:layout_marginRight="0.0dp"
          android:textColor="#ffefc6"
          android:textSize="22dip"
          android:editable="false"
          android:focusable="false" />
    <TextView
          android:text="@string/app"
          android:textAppearance="?android:attr/textAppearanceSmall"
          android:layout_weight="1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/textView2"
          android:textColor="#FFFFFF"
          android:textSize="22dip"
          android:editable="false"
          android:focusable="false" />
      </LinearLayout>
  </RelativeLayout>

  <TabHost android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/tabHost">
    <RelativeLayout android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:padding="3dp">
      <TabWidget android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    android:id="@android:id/tabs"
    android:layout_alignParentBottom="true" />

        <FrameLayout android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:id="@android:id/tabcontent"
      android:layout_alignParentTop="true">

          <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tab1"
        android:orientation="vertical">
            <TextView android:layout_width="fill_parent"
          android:layout_height="100px"
          android:text="This is tab1"
          android:id="@+id/txt1"/>
      </LinearLayout>

      <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tab2"
        android:orientation="vertical">

        <TextView android:layout_width="fill_parent"
          android:layout_height="100px"
          android:text="This is tab2"
          android:id="@+id/txt2"/>
          </LinearLayout>

      <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tab3"
        android:orientation="vertical">
            <TextView android:layout_width="fill_parent"
          android:layout_height="100px"
          android:text="This is tab3"
          android:id="@+id/txt3"/>
      </LinearLayout>
    </FrameLayout>
  </RelativeLayout>
    </TabHost>  
</LinearLayout>

当我尝试运行加载此布局的活动时,我收到一条错误消息:“应用程序意外停止。请再试一次。”。这段代码有什么问题?它必须是简单的东西。此时我已经盯着它看了5个小时。现在我觉得我太接近问题了。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不知道这有什么不对,但你也可以尝试编码,

TabHost tabHost = getTabHost();

TabSpec Spec1 = tabHost.newTabSpec("Tab 1");
Spec1.setIndicator("Name of Tab 1");
Intent IntentTab1 = new Intent(this, tab1.class);
Spec1.setContent(IntentTab1);

TabSpec Spec2 = tabHost.newTabSpec("Tab 2");
Spec2.setIndicator("Name of Tab 2");
Intent IntentTab2 = new Intent(this, tab2.class);
Spec2.setContent(IntentTab2);


TabSpec Spec3 = tabHost.newTabSpec("Tab 3");
Spec3.setIndicator("Name of Tab 3");
Intent IntentTab3 = new Intent(this, tab3.class);
Spec3.setContent(IntentTab3);


tabHost.addTab(Spec1);
tabHost.addTab(Spec2);
tabHost.addTab(Spec3);