2

私はこのように構成されたアンドロイドでアプリケーションを開発します: ここに画像の説明を入力

アクティビティ 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 などに置き換えて、すべて同じアクティビティでタブを使用しますか?

前もって感謝します。

4

1 に答える 1

2

Action Bar (または Action Bar Sherlock ) に基づいてソリューションを作成し、タブを一番上に移動することをお勧めします。タブごとに Fragment を持つ FragmentActivity (または SherlockFragmentActivity) をお勧めします。私は自分のアプリでこれを行いましたが、プログラミングは簡単で、十分に文書化されています。これを見ることから始めることをお勧めします:

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

幸運を !

于 2013-07-03T09:48:49.663 に答える