我正在努力升级Android应用程序(1.6兼容性),该应用程序使用a TabHost来显示3个带有嵌套活动的不同选项卡.
当时我使用ActivityGroup技巧在选项卡中显示嵌套活动,但我对这种方法非常不满意,因为处理某些功能真的很痛苦.
我听说过针对1.6的Fragments API兼容包,Fragment看起来非常适合我想要做的事情(在带有过渡效果和东西的标签中显示嵌套视图/功能)但是我不能让它与它一起工作TabHost(它的意思是使用,Action Bar但在兼容包中没有.
你们有没有人找到在你的应用程序中创建这样一个结构的方法?
我的错误是:
Run Code Online (Sandbox Code Playgroud)ERROR/AndroidRuntime(955): Caused by: java.lang.RuntimeException: Unable启动活动ComponentInfo {com.XXX}:java.lang.IllegalArgumentException:找不到片段MyFragment的id 0x1020011的视图
码
main.xml中
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_weight="1" />
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0" />
</LinearLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)
MainActivity.java
public class MainActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources();
final TabHost tabs = getTabHost();
TabHost.TabSpec spec;
Intent i;
i …Run Code Online (Sandbox Code Playgroud) java android android-tabhost activitygroup android-fragments
看来TabActivity现已弃用,我们需要使用Fragments.
我尝试使用标准的Activity但无法调用getTabHost.
所以看来我必须使用Fragments.但我有点困惑这是如何工作的.
我知道片段不是活动所以它们不在清单文件中?
所以我认为我不能对片段做startActivity?
有没有人知道解释tabHost和Fragments的一个很好的例子,我发现的所有例子和教程都只使用了tabactivity.
提前致谢