Android 如何在对话框中使用TabHost?

Android 如何在对话框中使用TabHost?,android,android-layout,android-tabhost,android-dialog,Android,Android Layout,Android Tabhost,Android Dialog,我在TabHost中看到了大量的对话框s,但不是相反。那么如何在对话框中使用TabHost布局呢。如果可能的话,我也不想在每个选项卡上使用Intents,因为我想做的事情看起来很凌乱 基本上,我想启动一个用于菜单的对话框,我希望有一个TabHost来浏览所有菜单选项。它们有很多:)现在我只是将XML布局设置为一个对话框,但我对如何在该对话框中设置选项卡主机感到困惑。我想指出另一种方法 与其创建一个难以维护甚至可能无法使用的复杂对话框,不如在清单文件的activity标记中使用以下代码,在对话框模

我在
TabHost
中看到了大量的
对话框
s,但不是相反。那么如何在
对话框中使用
TabHost
布局呢。如果可能的话,我也不想在每个
选项卡上使用
Intent
s,因为我想做的事情看起来很凌乱


基本上,我想启动一个用于菜单的
对话框
,我希望有一个
TabHost
来浏览所有菜单选项。它们有很多:)现在我只是将XML布局设置为一个
对话框
,但我对如何在该对话框中设置
选项卡主机
感到困惑。

我想指出另一种方法

与其创建一个难以维护甚至可能无法使用的复杂对话框,不如在清单文件的activity标记中使用以下代码,在对话框模式下打开一个单独的activity

android:theme="@android:style/Theme.Dialog"
通过这种方式,您可以在对话框中查看活动的所有复杂性和功能


我希望这会有所帮助。

我想指出另一种方法

与其创建一个难以维护甚至可能无法使用的复杂对话框,不如在清单文件的activity标记中使用以下代码,在对话框模式下打开一个单独的activity

android:theme="@android:style/Theme.Dialog"
通过这种方式,您可以在对话框中查看活动的所有复杂性和功能


我希望它能有所帮助。

因此我制作了一个
HostTab
布局,命名了每个线性/相对布局,并声明了我创建的每个选项卡,以使用XML文件中的线性/相对布局,在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尝试加入:)

所以我制作了一个
HostTab
布局,命名了每个线性/相对布局,并声明了我创建的每个选项卡,以使用XML文件中的线性/相对布局,在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尝试加入:)

但是通过创建一个新的活动来启动一个菜单似乎比在其中设置一个tabhost的简单对话框要复杂得多。我不需要一个单独的活动来运行一个简单的菜单…这似乎真的太过分了。我正在努力得到我想要的,我只是因为某种原因在我的代码中的一行有一个奇怪的空指针。好的,你能发布一些代码吗&提到代码在哪里抛出异常以及什么样的异常。嘿,谢谢你的帮助,但我刚刚找到了答案……我没有调用tabs.setup();然后在我的代码中,我有一个文本视图,我不再使用它了,这是导致错误的原因。直到我意识到我没有使用tabs.setup();,它才显示出来。但是,通过创建一个新的活动来启动一个菜单似乎比在其中设置一个tabhost的简单对话框要复杂得多。我不需要一个单独的活动来运行一个简单的菜单…这似乎真的太过分了。我正在努力得到我想要的,我只是因为某种原因在我的代码中的一行有一个奇怪的空指针。好的,你能发布一些代码吗&提到代码在哪里抛出异常以及什么样的异常。嘿,谢谢你的帮助,但我刚刚找到了答案……我没有调用tabs.setup();然后在我的代码中,我有一个文本视图,我不再使用它了,这是导致错误的原因。直到我意识到我没有使用tabs.setup();,它才显示出来。谢谢你为我节省了很多时间。现在我不必创建5个活动和XML文件。不幸的是,我不再能够从该源访问项目文件,但其结构方式是,我基本上采用了传统上位于不同文件中的布局,并将它们放在一个大文件中,这样,当我设置内容时,它们都已经膨胀了视图。谢谢你为我节省了很多时间。现在,我不必创建5个活动和XML文件。不幸的是,我不再能够从该源访问项目文件,但它的结构方式是,我基本上采用了传统上位于不同文件中的布局,并将它们放在一个大文件中,这样当我设置内容视图时,它们都已经膨胀了。