我一直在尝试实现“高级”tabwidget来自谷歌的例子。但是,当它尝试调用 tabHost.addTab(spec);
时,我从调试器中获得了堆栈跟踪。抱歉,我这里没有堆栈跟踪,但我想知道其他人是否遇到过同样的问题(因为这段代码有很多拼写错误和缺失的信息,这让我无法编译。
任何人都可以指出此代码的更正/运行版本吗?
需要更新的信息是:
<activity android:name=".ArtistsActivity"></activity>
<activity android:name=".AlbumsActivity"></activity>
<activity android:name=".SongsActivity"></activity>
最佳答案
我花了大约一个小时完成了该教程。以下是我处理的问题和解决方法:
第 2 步:在创建 Activity 时,如果您没有通过 list 创建它们,则需要手动将它们添加到 list 中。
将这些行添加到 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 ; 而不是 :)
android:padding="5dp" />
</LinearLayout>
</TabHost>
第 6 步:有一个拼写错误使用调用 mTabHost 而不是 tabHost。改变它。
如前所述,最后一行的 getIntent() 函数是不合适的。我只是根据它的 ID 调用选项卡。例如:
tabHost.setCurrentTabByTag("albums");
关于android - Android TabHost 示例的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209406/