学习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。
分享到:
相关推荐
在开始Android开发时,可能会遇到Windows环境下Eclipse预览汉字乱码的问题,这通常是编码设置导致的,但不会影响在模拟器或真实设备上的运行效果。了解并掌握这些基本概念,你就能开始创建自己的Android应用了。
- **解压ADT插件**: ADT(Android Development Tools)是Eclipse的一个插件,用于提供Android开发的支持。 - **解压开发文档**: 文档中提到的本地开发文档,可以离线查看API和其他相关资料。 **2. 配置开发环境** - ...
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...
- **ADT安装**:ADT(Android Development Tools)是一组集成到Eclipse中的插件,提供了开发、调试和发布Android应用的完整解决方案。安装时需确保Eclipse版本兼容,并正确配置ADT插件。 ##### 1.2 创建Android工程...
8. **Eclipse集成**:这个demo是为Eclipse环境设计的,这意味着它可能使用了ADT(Android Development Toolkit)插件,并遵循了早期的Android项目结构。如果你主要使用Android Studio,了解如何在Eclipse中运行和...
在Android开发中,ActivityGroup是一个比较老的概念,它在Android早期API版本中被用来实现多层级的导航,尤其是在TabHost中处理多个Tab之间的切换。在标题提到的"ActivityGroupProject.zip"中,我们可以推测这是一个...