2012-05-11 33 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

相关问题