`
morry
  • 浏览: 131539 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Eclipse插件TabHost问题

阅读更多

学习Android一周, 这两天用TabHost的时候, 遇到2个问题:

 

问题1.  运行Activity的时候出现Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'

添加Layout的时候,xml跟元素选择TabHost, 但是ADT没有添加id属性, 运行的时候,会提示Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'错误, 需要添加android:id="@android:id/tabhost", 这样就可以了。

 

问题2. 运行Activity的时候出现Your TabHost must have a TabWidget whose id attribute is 'android.R.id.tabcontent'

解决方法: 修改FrameLayout添加id属性, ADT自动生成的xml文件中Id是android:id="@+id/FrameLayout01 ", 需要修改成下面的格式android:id="@android:id/tabcontent ",这个估计会困扰一大批初学者,谁会想到会修改这个地方,看到错误很容易修改成tabcontent,但是前缀不容易想到。 而且在ADT可视化编辑这个文件的时候, 界面上显示NullPointerException,这个是ADT的一个BUG。

 

 

修改后的xml如下:

 

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

 

 

注意: 如果用TabHost的话, 上面标红的三处必须是一样, 这个是Google的约定。  而且一个工程中只能有一个TabHost。

2
1
分享到:
评论
2 楼 killerover85 2012-06-29  
我加了还是报这样的错,那么解决?
1 楼 hh777 2011-07-04  
TabHost 改了不管用啊

1.
<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"
android:background="@drawable/default_bg">

2.
//以下三句代码,注意顺序
TabHost mTabHost = (TabHost)findViewById(android.R.id.tabhost);
mTabHost.setup();
TabWidget tabWidget = mTabHost.getTabWidget();

错误日志:

相关推荐

    android实用笔记

    在开始Android开发时,可能会遇到Windows环境下Eclipse预览汉字乱码的问题,这通常是编码设置导致的,但不会影响在模拟器或真实设备上的运行效果。了解并掌握这些基本概念,你就能开始创建自己的Android应用了。

    Android開發指南

    - **解压ADT插件**: ADT(Android Development Tools)是Eclipse的一个插件,用于提供Android开发的支持。 - **解压开发文档**: 文档中提到的本地开发文档,可以离线查看API和其他相关资料。 **2. 配置开发环境** - ...

    疯狂Android讲义源码

     1.2.2 安装Eclipse和ADT插件 7  1.3 Android常用开发工具的用法 10  1.3.1 创建、删除和浏览AVD 10  1.3.2 使用Android模拟器  (Emulator) 14  1.3.3 使用DDMS进行调试 15  1.3.4 Android Debug Bridge...

    Android简明应用程序开发[原创]

    - **ADT安装**:ADT(Android Development Tools)是一组集成到Eclipse中的插件,提供了开发、调试和发布Android应用的完整解决方案。安装时需确保Eclipse版本兼容,并正确配置ADT插件。 ##### 1.2 创建Android工程...

    ActivityGroup demo

    8. **Eclipse集成**:这个demo是为Eclipse环境设计的,这意味着它可能使用了ADT(Android Development Toolkit)插件,并遵循了早期的Android项目结构。如果你主要使用Android Studio,了解如何在Eclipse中运行和...

    ActivityGroupProject.zip_android开发_Java_

    在Android开发中,ActivityGroup是一个比较老的概念,它在Android早期API版本中被用来实现多层级的导航,尤其是在TabHost中处理多个Tab之间的切换。在标题提到的"ActivityGroupProject.zip"中,我们可以推测这是一个...

Global site tag (gtag.js) - Google Analytics