与Android TabHost例问题
-
18-09-2019 - |
题
我一直在试图实现 '高级' tabwidget 一>从谷歌的例子。但是,当它试图调用tabHost.addTab(spec);
我从调试程序的堆栈跟踪。对不起,我没有堆栈跟踪在这里,但我想知道如果别人有同样的问题(因为这样的代码有一些拼写错误的和缺少阻止了我,甚至编译信息。
任何人都可以点我这个代码的修正/运行的版本?
所需要的更新的信息是:
<activity android:name=".ArtistsActivity"></activity>
<activity android:name=".AlbumsActivity"></activity>
<activity android:name=".SongsActivity"></activity>
解决方案
当前 TabHost例的上Android开发者网站包含一个错误,并且还省去了将防止运行示例的一个重要步骤。
第一关: 在被添加到HelloTabWidget类onCreate()方法试图使用称为mTabHost一个TabHost对象。这是无效的,它应该是tabHost。
第二: 本教程离开了,您需要添加的每一项活动的太AndroidManifest.xml中的细节。如果没有这个代码将无法正常工作,你会得到“强制关闭”每次尝试执行时间。
其他提示
我度过了最后一个小时或通过教程那么回事。这里的问题,并修复它,我处理了:
第二步:在创建活动中,如果不通过清单创建它们,那么你就需要将它们添加到清单手动
这些行添加到的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 /布局最后一行/主具有错字(A;而不是:)
android:padding="5dp" />
</LinearLayout>
</TabHost>
<强>步骤6:强>有是使用呼叫mTabHost代替tabHost一个错字。改变它。
正如已经提到的最后一行的getIntent()函数是不恰当的。我只是叫基于它的ID标签。例如:
tabHost.setCurrentTabByTag("albums");
另外的
android:theme="@android:style/Theme.NoTitleBar"
不工作对我来说,如果我将其替换为
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
它工作得很好。
在实例中,由Ted作为校正,也工作,如果所有三个活动不包括行:
android:theme="@android:style/Theme.NoTitleBar"
如果你想在除了标签标签标题栏这是非常有用的。