我一直在尝试实施本教程中描述的标签页:https://developer.android.com/resources/tutorials/views/hello-tabwidget.html
我按照流程中描述的所有步骤进行操作,但我一直收到一个运行时异常,我认为这与教程中没有添加与内容相关的额外活动(歌曲,艺术家和专辑)这一事实有关将每个标签放入android清单文件中。
我说错了吗?这个教程(像许多其他人一样)是错误的还是不完整的?
答案 0 :(得分:15)
由于他们似乎偶尔更新这些教程,我不怀疑他们忘记在提出这个问题时提到这一部分。他们似乎现在在教程中添加了对此要求的提及(截至2010年12月20日):
对三个活动中的每个活动重复此操作,并将相应的标记添加到Android清单文件中。
不幸的是,由于这些是初学者教程,因此它们应该包括XML标签应该是什么样子。在本教程之前,他们没有提到如何向清单添加活动(尽管最后在隐藏标题栏时添加了一个活动)。我使用的标记与OP自己的答案中提到的另一个问题相同:
<activity android:name=".ArtistsActivity"></activity>
<activity android:name=".AlbumsActivity"></activity>
<activity android:name=".SongsActivity"></activity>
Android开发者网站上有manifest activities的完整参考资料。
答案 1 :(得分:3)
非常感谢您的建议,但我并没有真正使用LogCat。该教程确实有缺陷且不完整,在相关文章中对修正进行了很好的解释。
Issues with Android TabHost Example
我对这些教程中的错误数量以及没有人修复它们的事实感到惊讶。
纳尔逊
答案 2 :(得分:2)
我遇到了同样的问题,即使在完成上述所有更正之后以及以下帖子link
问题是AndroidManifest,以下清单文件对我有用。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tabview.android" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloTabWidget" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AlbumsActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
<activity android:name=".ArtistsActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
<activity android:name=".SongsActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
</application>
</manifest>