2012-05-11 5 views
0

2つのタブに1つのアクティビティが表示されます。私のメインの中1アクティビティビューの異なるタブ

私は、次のしている:私のmain.xmlで

TabHost tabHost = getTabHost(); // The activity TabHost 

    tabHost.addTab(tabHost.newTabSpec("tab0").setIndicator(tabNames[0]).setContent(R.id.tab0)); 
    tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(tabNames[1]).setContent(R.id.tab1)); 

    Intent intent = new Intent().setClass(this, DMXControllerActivity.class); 
    startActivity(intent); 

私はでframeLayout内でこれを持っている:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    layoutTab0(); 
    layoutTab1(); 
:私の活動で

<LinearLayout 
     android:id="@+id/tab0" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp"> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/tab1" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp"> 
    </LinearLayout> 

を私はこれを持っています

}

プライベートボイドlayoutTab0(){

LinearLayout ll_main = new LinearLayout(this); 
    ll_main.setOrientation(LinearLayout.VERTICAL); 

    LinearLayout myll = (LinearLayout) findViewById(R.id.tab0); 

    myll.addView(ll_main); 

    LinearLayout ll_sliders = new LinearLayout(this); 
    ll_sliders.setOrientation(LinearLayout.VERTICAL); 
    ll_main.addView(ll_sliders); 

...... ..... .....

}

私は内容を見るアプリを起動したとき私のtab0とtab1の上にお互いの上に。私がエミュレータでバックキーを押すと、2つのタブが期待どおりに表示されますが、それらは空です。

タブのコンテンツをタブに表示するにはどうすればよいですか?あなたはContentViewを設定した後に、このコードを実行する必要が

答えて

0

TabHost tabHost = getTabHost(); // The activity TabHost 
tabHost.addTab(tabHost.newTabSpec("tab0").setIndicator(tabNames[0]).setContent(R.id.tab0)); 
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(tabNames[1]).setContent(R.id.tab1)); 
(あなたのonCreateを変更

)へ:あなたのコードで

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    TabHost tabHost = getTabHost(); // The activity TabHost 
    tabHost.addTab(tabHost.newTabSpec("tab0").setIndicator(tabNames[0]).setContent(R.id.tab0)); 
    tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(tabNames[1]).setContent(R.id.tab1)); 

    layoutTab0(); 
    layoutTab1(); 
} 

あなたは、タブを作成し、新しいを開いていますアクティビティ。アクティビティを開かないと、タブは表示されますが、コンテンツを追加していないため空になります。あなたは新しい活動を呼び出す必要はありません、ちょうどタブレイアウトにコンテンツを追加し、それは動作するはずです。

+0

問題は、すべてのコントロールを動的に、xmlファイル以外のアクティビティで作成することです。私はアクティビティのさまざまなウィジェットで作業する必要があるので、そこで作成する必要があります。私は各タブで1つのアクティビティを持つ前に、私はそれらの間でデータを転送するのに問題がありました。私は同じアクティビティでeverythigを持つ方が簡単だと思っていましたが、データ転送はシンプルですが、GUIのレイアウトを正しく動作させることができません。 – user1390106

+0

このコードを使用するためにxmlファイルを使用する必要はありません。コードでは、タブを作成してから新しいアクティビティを開きます。アクティビティを開かないと、タブは表示されますが、コンテンツを追加していないため空になります。あなたは新しい活動を呼び出す必要はありません、ちょうどタブレイアウトにコンテンツを追加し、それは動作するはずです。 –

+0

あなたは正しいです。今はうまくいく。ありがとう! – user1390106

関連する問題