8

我一直在尝试从谷歌实现“高级”标签小部件示例。但是,当它尝试调用时,tabHost.addTab(spec);我会从调试器中获得堆栈跟踪。抱歉,我这里没有堆栈跟踪,但我想知道其他人是否也遇到过同样的问题(因为这段代码有许多拼写错误和缺失的信息,甚至让我无法编译。

任何人都可以指出此代码的更正/运行版本吗?

所需的更新信息是:

<activity android:name=".ArtistsActivity"></activity>
<activity android:name=".AlbumsActivity"></activity>
<activity android:name=".SongsActivity"></activity>
4

4 回答 4

12

我花了大约最后一个小时来完成那个教程。这是我处理的问题和修复:

第 2 步:创建活动时,如果您不通过清单创建它们,则需要手动将它们添加到清单中。

将这些行添加到 AndroidManifest.xml:

  <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>

第 3 步:您只需要创建 ic_tab_artists.xml 文件。您还需要为 ic_tab_songs.xml 和 ic_tab_albums.xml 创建一个。您可以只复制 ic_tab_artists.xml(或更改 HelloTabView.java 选项卡规范以对每个选项卡使用 Artists.xml 文件)。

第 4 步: /res/layout/main 下的倒数第三行有错字(a ; 而不是 a :)

      android:padding="5dp" />
    </LinearLayout>
</TabHost>

第 6 步:有一个错字使用调用 mTab​​Host 而不是 tabHost。更改。

如前所述,最后一行的 getIntent() 函数是不合适的。我只是根据它的 ID 调用选项卡。例如:

tabHost.setCurrentTabByTag("albums");
于 2010-02-11T05:07:17.743 回答
9

Android 开发者网站上的当前TabHost 示例包含一个错误,并且还遗漏了一个重要步骤,该步骤将阻止示例运行。

首先:在添加到 HelloTabWidget 类的 onCreate() 方法中,尝试使用名为 mTab​​Host 的 TabHost 对象。这是无效的,应该是tabHost。

第二:本教程省略了在 AndroidManifest.xml 中添加每个活动所需的详细信息。没有这个,代码将无法工作,每次尝试执行时都会“强制关闭”。

于 2010-02-08T04:44:48.153 回答
2

还有

android:theme="@android:style/Theme.NoTitleBar"

对我不起作用,如果我将其替换为

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

它工作正常。

于 2010-03-21T09:41:13.463 回答
1

如 Ted 更正的示例,如果所有三个活动都不包含以下行,则该示例也有效:

android:theme="@android:style/Theme.NoTitleBar"

This is useful if you want a title bar in addition to the tab labels.

于 2010-04-22T17:36:40.370 回答