12-01 05:25:20.352: E/AndroidRuntime(733): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Film/com.Film.MainPageActivity}: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'代码先不贴了,感觉没错,直接贴一个demo的

解决方案 »

  1.   

    Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'
    很明显了 就是你自己定义的tabHost控件的id必须用'android.R.id.tabhost' 
    同时没记错的话自定义的tabWidget的id必须是'android.R.id.tabs'
      

  2.   


    我的main.xml文件如下<?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >    <!-- 第一个tab对应布局 -->    <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" 
            android:id="@+id/tab1"
            >        <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="电影院列表" />        <ListView
                android:id="@+id/listdata"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >
            </ListView>
        </LinearLayout> 
        <!-- 第二个tab对应布局 -->
             <LinearLayout android:id="@+id/widget_layout_green"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical">
    <RadioGroup android:id="@+id/widget43"
    android:layout_width="166px" android:layout_height="98px"
    android:orientation="vertical">
    <RadioButton android:id="@+id/widget44"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="RadioButton">
    </RadioButton>
    <RadioButton android:id="@+id/widget45"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="RadioButton">
    </RadioButton>
    </RadioGroup>
    </LinearLayout>
    </FrameLayout>
    如何设置ID,请详细教教我,谢谢
      

  3.   

    给你看下我做的例子:
    这是一个主tabHost的xml:
    <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"> <!-- A paddingTop of zero will remove the strip below the tabs. 
    显示tabhost 里面的内容
    -->
    <FrameLayout android:id="@android:id/tabcontent"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="45px" >
    </FrameLayout> <RelativeLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/maintabrl"
    > <TabWidget android:id="@android:id/tabs"
    android:tabStripEnabled="false"
    android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"
    android:layout_height="45px" />

    </RelativeLayout>
    </TabHost> 单独定义一个layout:
         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabMainNav" android:layout_weight="99"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent" 
    android:gravity="center_horizontal"
    android:orientation="vertical"
    >
    <ImageView android:id="@+id/ivIcon" android:layout_width="30dip"
    android:layout_height="30dip" android:scaleType="fitXY"
    android:layout_marginTop="5dip" android:layout_marginBottom="1dip" />

    <TextView android:id="@+id/tvTitle" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:textSize="14dip"
    android:textAppearance="@style/TextViewStyleTabMainNav"
    android:layout_marginBottom="5dip" />
    </LinearLayout>
      其作用就是把单独定义的layout(layout一直都指的是第二个布局)钳到tabHost的每个元素中
    //取得tabHost
    TabHost tabHost = getTabHost();
    //为tabHost设置一个元素
    tabHost.addTab(tabHost.newTabSpec("my_resumme").setIndicator(
    getTabView( R.string.my_resume, R.drawable.tab_main_nav_me))
    .setContent(new Intent(this, UpUserActivity.class)));
    //每个元素的样式,也就是上面定义的layout
    private View getTabView( int tvTitleid, int iconid) {
    LayoutInflater inflater = (LayoutInflater) this
    .getSystemService(LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.tab_main_nav, null);
    ImageView ivIcon = (ImageView) view.findViewById(R.id.ivIcon);
    TextView tvTitle = (TextView) view.findViewById(R.id.tvTitle);
    ivIcon.setImageResource(iconid);
    tvTitle.setText(tvTitleid);
    return view;
    }
      

  4.   

    楼主,你应该把你的tabHost配置文件贴出来,你光贴你tab的代码没用