2012-01-05 71 views
1

我在TabHost里面看到大量的Dialog,但不是相反。那么如何在Dialog中使用TabHost布局。如果可能的话,我也不想为每个Tab使用Intent,因为它对于我想要做的事似乎很混乱。如何在对话框中使用TabHost?

基本上我想要启动一个Dialog,我用它作为菜单,我想有一个TabHost来浏览所有菜单选项。有很多他们:)现在我只是将XML布局设置为Dialog,但我很困惑如何在该对话框中设置TabHost

回答

2

所以我做了一个HostTab布局,并命名为每个线性/相对布局,并宣布我创建从他们被宣布像这样的XML文件中使用的线性/相对布局的每个选项卡:

dialog.setContentView(R.layout.maintabmenu); 
TabHost tabs = (TabHost) dialog.findViewById(R.id.my_tabhost); 
tabs.setup(); 
tabs.setCurrentTab(0); 

TabSpec tspec11 = tabs.newTabSpec("Tab1"); 
tspec11.setIndicator("NEWTAB"); 

tspec11.setContent(R.id.ScrollView01); 
tabs.addTab(tspec11); 

TabSpec tspec2 = tabs.newTabSpec("Tab2"); 
tspec2.setIndicator("NEWTAB"); 

tspec2.setContent(R.id.ScrollView02); 
tabs.addTab(tspec2); 

我还有所有的按钮和其他意见与每个声明的内部布局,使一切工作就像我想:)耶,我笑

但由于@ R.daneel。 oliva试图跳进:)

+0

谢谢你为我节省了很多时间。现在我不必创建5个活动和XML文件。 – userman 2013-01-13 07:32:47

+0

我们可以看到xml吗? – ChuckKelly 2013-03-28 06:50:14

+0

不幸的是,我不再能够访问来自该来源的项目文件,但是它的结构方式是我基本上采用了传统上位于不同文件中的布局,并将它们放入一个大文件中,这样当我设置时就已经充气了内容视图。 – 2013-03-28 18:16:31

2

我想指出的另一种方法,

,而不是使一个复杂的对话框,难以维持,甚至用,为什么不通过使用下面的代码在对话框模式打开一个单独的活动在清单文件

android:theme="@android:style/Theme.Dialog" 

这种方式可以的hve所有复杂&能力在对话活动的活动标签。

我希望它有助于..

+0

但是,通过创建一个新的活动来启动一个菜单似乎比设置了tabhost的简单对话更加复杂和复杂。我不需要一个单独的活动来运行一个简单的菜单.....这似乎真的矫枉过正。我正在努力获得它,我想如何我只是有一个奇怪的空指针出于某种原因在我的代码中的一行。 – 2012-01-05 04:06:46

+1

好的,您可以发布一些代码并提及代码引发异常的位置以及哪种异常。 – 2012-01-05 04:13:12

+0

嘿谢谢你的帮助,但我只是想通了....我没有调用tabs.setup();然后在我的代码中进一步下来,我有一个Textview,我不再使用,这是导致错误。它没有显示自己,直到我意识到我没有使用tabs.setup(); 。 – 2012-01-05 04:24:34