2012-05-11 68 views
0

我想要在2個選項卡上顯示1個活動。有1個活動不同視圖的選項卡

在我的主要

我有以下幾點:

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); 
在我main.xml中

我有這個裏面的FrameLayout:

<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> 

在我的活動我有這樣的:

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

    setContentView(R.layout.main); 

    layoutTab0(); 
    layoutTab1(); 

}

私人無效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個標籤,但它們都是空的。

如何讓我的標籤內容顯示在標籤上?

回答

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(); 
} 

在你的代碼所創建的選項卡,然後打開一個新的活動。如果你沒有打開這個活動,這些標籤會出現,但是它們將是空的,因爲你沒有向他們添加內容。您不必調用新的活動,只需將內容添加到Tablayouts即可使用。

+0

問題是我在activity中創建了所有的控件,而不是在xml文件中。我需要在活動中使用各種小部件,所以我需要在那裏創建它們。在每個選項卡中進行1次活動之前,我無法在它們之間來回傳輸數據。我認爲在同一活動中每個人都會更容易,數據傳輸很簡單,但現在我無法讓gui佈局正常工作。 – user1390106

+0

您不必使用xml文件來使用此代碼。在你的代碼中,你正在創建標籤,然後打開一個新的活動。如果你沒有打開這個活動,這些標籤會出現,但是它們將是空的,因爲你沒有向他們添加內容。您不必調用新的活動,只需將內容添加到Tablayouts即可使用。 –

+0

你是對的。它現在工作正常。謝謝! – user1390106

相關問題