2012-01-05 10 views
0

アクティビティに2つのタブがあり、新しいタブを追加してGoogleマップを追加したいので、マップアクティビティを拡張するアクティビティを作成する必要があります。ここまでは順調ですね。 しかし、地図を表示できるようにタブを選択したときにアクティビティを呼び出す方法がわかりません。別のアクティビティを呼び出すアクティビティ内のタブ

これは私のコード

TabHost tabhost =(TabHost)findViewById(R.id.tabHost)です。 tabhost.setup();

TabSpec spec1 = tabhost.newTabSpec("tab1"); 
    spec1.setContent(R.id.tab1); 

    TabSpec spec2 = tabhost.newTabSpec("tab2"); 
    spec2.setContent(R.id.tab2); 

    TabSpec spec3 = tabhost.newTabSpec("map"); 
    spec3.setContent(R.id.tab3); 

    tabhost.addTab(spec1); 
    tabhost.addTab(spec2); 
    tabhost.addTab(spec3); 

タブ1とタブ2は、コードがすべて同じアクティビティにあるため動作しています。

助けてくださいか?

答えて

0
tabSpec=tabHost.newTabSpec("tab1"); 
    tabSpec.setIndicator("CLASS A"); 
    Intent i=new Intent(this,ClassA.class); 
    tabSpec.setContent(i); 
    tabHost.addTab(tabSpec); 

    tabSpec=tabHost.newTabSpec("tab2"); 
    tabSpec.setIndicator("CLASS B"); 
    Intent i=new Intent(this,ClassB.class); 
    tabSpec.setContent(i); 
    tabHost.addTab(tabSpec); 
0

あなたはこれを達成するためにFragmentsの代わりActivitiesで動作するはずです。 プリハニカムデバイスの場合は、Fragmentsを使用する互換APIがあります。

Fragmentsとすると、FragmentTransationを使用して同じTab内のGoogleマップに切り替えることができます。

+0

ハニカムを使用しています。問題ありますか?サンプルコードを教えていただけますか?すでに準備が整っているので、すべてのコードを変更する必要があります。私はちょうどGoogleマップでこのタブを追加する必要があります。 – Adnama

+0

ハニカムを使用している場合は、フラグメントを使用できます。 ハニカム用に開発している場合は、フラグメントを使用する必要があります。 [こちら](http://developer.android.com/guide/topics/fundamentals/fragments.html)は、フラグメントを使用し始めるための情報です。 –

1

私はMapViewMapFragmentについて聞いたことがありますが、あなたがMapActivityの意味を理解できていない - それは誰かがあなたに与えたカスタムアクティビティかもしれません。しかし、とにかく、MapViewまたはMapFragmentを作成し、ユーザーがアプリケーションのMap-Tabをクリックしたときにそれを返すことをお勧めします。マップ画面を表示するために別のアクティビティをトリガーする必要はありません。必要なものを実現するには、spec3.setContent(MapViewInstance)またはspec3.setContent(MapFragmentInstance)を使用してください。 HTH。

関連する問題