2011-12-20 14 views
0

私はアンドロイドに新しいです。私はtabhostで簡単なアプリケーションを開発しようとしています。そして、私はtabhostが私の活動のすべてにあることを望みます。私は5つのタブと6-7のアクティビティを持っています。それらを5つのタブにすべて表示します。すべての活動に従うためにTabview

ここで私は私の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="fill_parent" 
android:layout_height="fill_parent" > 

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 


    <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@android:id/tabs" /> 

    <TabWidget 
     android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 

     /> 
</RelativeLayout> 

</TabHost> 

そして、ここで私はタブを追加:

TabSpec tabSpec = mTabHost.newTabSpec("tab_test1"); 
    tabSpec.setIndicator("Map",res.getDrawable(R.drawable.world)); 
    Context ctx = this.getApplicationContext(); 
    Intent i = new Intent(ctx, DealFinderActivity.class); 
    tabSpec.setContent(i); 
    mTabHost.addTab(tabSpec); 

    mTabHost.getTabWidget().setBackgroundColor(Color.GRAY); 

    mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator 
      ("List Deals",res.getDrawable(R.drawable.database)) 
      .setContent(new Intent(this,ListDeals.class))); 

    //  TextView textView = (TextView) findViewById(R.id.textview3); 
    //  textView.setText("hello"); 
    mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("Favorites", 
      res.getDrawable(R.drawable.heart)).setContent(
        new Intent(this, ListDeals.class))); 

    mTabHost.addTab(mTabHost.newTabSpec("tab_test4").setIndicator("Settings", 
      res.getDrawable(R.drawable.preferences)).setContent(
        new Intent(this, DealDescription.class))); 

    mTabHost.addTab(mTabHost.newTabSpec("tab_test5").setIndicator("About", 
      res.getDrawable(R.drawable.newspaper)).setContent(
        new Intent(this, DealDescription.class))); 

と私は新しい活動に変更するためにこれを使用ListDeals.class中:

 Intent myIntent = new Intent(getApplicationContext(), 
       DealMyAss.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

     getApplication().startActivity(myIntent); 

ここでは、タブビューが消えますか?

どのように私はtabviewを保持することができます任意のアイデア??事前

答えて

0

ActivityGroup

おかげで、あなたが探しているものです。

という名前で、タブ内に複数のアクティビティがあることを示唆しています。 例を参照してください。 1つはhereです。

すべてのタブに対して1つのアクティビティグループを作成します。

+0

ActivityGroupsがICSで推奨されなくなりました。フラグメントを使う方が良い。 – Dante

+0

はい、私は例に従って、それは正常に動作しますが、私はクリック可能なオーバーレイを持っているマップクラスがあり、それらのオーバーレイはMyItemizedOverlayにあり、そのクラスでは、クラスを変更するonTapメソッドがありますそれは変わる?? – Mustii1989

+0

別のクラス、java.lang.ClassCastExceptionがからに変更しようとしたとき、私はこのエラーを取得:android.app.application – Mustii1989

関連する問題