2

アプリでタブを設計しています。タブのアクティビティを使用するか、単にビューを使用するかについて混乱しています

どちらがタブレイアウトのより良い方法ですか

私は混乱しています ..

私はタブに少し慣れていませんが、Android のタブ レイアウトをまだ学習しているので、私の質問は少し素朴かもしれませんので、ご容赦ください :)

4

3 に答える 3

4

「タブレイアウトでのアクティビティまたは表示」の質問に答えるには

これは、Androidチュートリアルが言うことです:

タブコンテンツは、2つの方法のいずれかで実装できます。タブを使用して同じアクティビティ内のビューを交換するか、タブを使用して完全に別個のアクティビティ間で変更します。アプリケーションにどの方法を使用するかは要求によって異なりますが、各タブが個別のユーザーアクティビティを提供する場合は、タブごとに個別のアクティビティを使用するのが理にかなっているため、アプリケーションを個別のグループでより適切に管理できます。 1つの大規模なアプリケーションとレイアウトよりも。 Androidタブレイアウトチュートリアル

チュートリアルに従うことを強くお勧めします。次に、アプリに独自のバージョンを実装してみてください。

念のため、コードサンプルを次に示します。

public class TabHostExample extends TabActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.testtabs); 

    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent content;

    spec = tabHost.newTabSpec("test1"); //set a title for the tab
    spec.setIndicator("test1"),
            getResources().getDrawable(R.drawable.ic_dialog_alert)); //set an icon for tab
    content = new Intent(this, ExampleActivityOne.class);
    spec.setContent(content);
    tabHost.addTab(spec);

    spec = tabHost.newTabSpec("test2")); //set a title for the tab
    spec.setIndicator("test2"),
            getResources().getDrawable(R.drawable.ic_dialog_info)); //set an icon for the tab
    content = new Intent(this, ExampleActivityTwo.class);
    spec.setContent(content);
    tabHost.addTab(spec);

    tabHost.setCurrentTab(0);
}

}

    <TabHost
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@android:id/tabhost">
    <LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    >   
        <TabWidget
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@android:id/tabs" 
        />
        <FrameLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:id="@android:id/tabcontent" 
        />
    </LinearLayout>
</TabHost>

チュートリアルからの追加情報:

フレームレイアウトは、タブごとのアクティビティのコンテンツが移動する場所です。

TabWidget要素とFrameLayout要素にはそれぞれIDtabsとtabcontentがあることに注意してください。これらの名前は、TabHostが各名前への参照を取得できるようにするために使用する必要があります。まさにこれらの名前を期待しています。

したがって、このコードを使用すると、タブレイアウトの基本的な設定ができます。次に行うことは、アクティビティをタブにアタッチすることです。通常のようにアクティビティを使用します。これらのアクティビティでは、アクティビティの場合と同じようにアクティビティを拡張し、onCreate/onResumeでレイアウトを作成します。

さらに詳しい情報や説明が必要な場合は、コメントを残してください。しかし、ほとんどのコードは自明だと思います。

私のコードがチュートリアルページからほぼ正確にコピーされていることに気づきました。私は実際にこのコードをアプリで使用しており、アクティビティなどに異なる名前を付けています。これはうまく機能します。私はそれをお勧めします。クレジットはAndroidチームに送られます。

于 2012-05-02T12:39:29.863 に答える
1

アクティビティを使用する必要があります。すべてのタブにはアクティビティがあります。developer.android.com に優れたチュートリアルがありますここでこれを試してください

于 2012-05-02T12:21:20.850 に答える
1

アクティビティを試してみてください..アプリでTABSを処理する最良の方法であるTabActivityを探してください.. http://developer.android.com/reference/android/app/TabActivity.htmlおよびhttp://developer.android.com/リソース/チュートリアル/ビュー/hello-tabwidget.html

于 2012-05-02T12:24:55.863 に答える