替换已弃用TabActivity与FragmentActivity

时间:2013-07-03 09:05:48

标签: android android-layout android-intent deprecated

我在android上开发了一个应用程序,它的结构如下: enter image description here

活动1,活动2,...,活动n - 是具有相关活动的标签。

    TabHost tabHost = getTabHost();
    Resources res = getResources();        
    View view = null;        
    Context ctx = MyApplication.getInstance().getApplicationContext();

    TabSpec startspec = tabHost.newTabSpec("Login");
    view = prepareTabView(ctx, "Login", res.getDrawable(R.drawable.menu_bkg),  R.drawable.tab_files_selector);
    startspec.setIndicator(view).setContent(new Intent(this, LoginActivity.class));
    tabHost.addTab(startspec);

TabActivity内容视图:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/title_band"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:orientation="vertical" >


        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clipChildren="false" />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </RelativeLayout>
</FrameLayout>

</TabHost>

我的问题是:

如何将TabActivity替换为FragmentActivity或其他,所以我使用包含所有相同活动的标签?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我建议您将解决方案基于操作栏(或操作栏Sherlock)并将标签移至顶部。我建议FragmentActivity(或SherlockFragmentActivity)为每个选项卡添加一个Fragment。我已经在我的应用程序中完成了这项工作,并且编程很简单且记录完备。我建议你 从这看起来开始:

http://developer.android.com/guide/topics/ui/actionbar.html

祝你好运!