0

下面是我想要的图片。

在此处输入图像描述

马上。当我点击一个项目(见图 2)时,会出现不正确的版本(见图 3)。

如何将第二个 tabhost(见图 3)加载到第一个 tabhost 的框架布局中?

现在的代码(位于 2 中,见图)(产生不正确的布局)是这样的:

listView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {

                Intent i = new Intent(StaticResources.FrameContainer.getContext(), AppSecondTabHost.class);
                StaticResources.FrameContainer.getContext().startActivity(i);
            }
        });

静态变量:StaticResources.FrameContainer 在主活动中设置(参见图片中的 1),如下所示:

StaticResources.FrameContainer = (View)getTabHost().getTabContentView();

知道如何重写 onitem 点击事件以显示正确的版本吗?如图所示,右下角版本有 2 个标签主机。

编辑

要特别清楚。我在图片 1 中创建了 tabhost。当我单击其中一个选项卡时,一个活动开始并且该活动显示一个列表(图 2)。当我 THEN 点击这个列表中的一个项目时,这个项目会将它的 id 存储在一个意图中,并在第一个 tabhost 中打开第二个 tabhost(图 3-4)。然后,第二个 tabhost(图 3)将读取在 onitemclick 事件中在图 2 中设置的 id。

4

3 回答 3

1

如果您使用的是 tabhost,如果您将所有选项卡添加到 tabhost,它将自动处理所有选项卡单击事件。您不需要使用 onClickListener 手动更改 tabview。

以下是我的应用程序中的一个示例:

    intent = new Intent().setClass(this, deployment.class);
    intent.putExtra("deploy_data", deployRawData);

    spec = tabHost.newTabSpec("Deployment").setIndicator("Deployment",
                      res.getDrawable(R.drawable.man))
                  .setContent(intent);

    tabHost.addTab(spec);

通过这种方式,您实际上是在添加到 tabhost 之前将活动和 tabview 捆绑在一起。它应该可以帮助您节省大量对 onClickListener 进行编码的工作。

于 2012-06-20T08:33:43.067 回答
0

TabHost tabHost=getTabHost(); TabHost.TabSpec tabSpec; 资源 res=getResources();

tabSpec=tabHost.newTabSpec("第一"); tabSpec.setIndicator("FirstTabName",res.getDrawable(R.drawable.image)); Intent i1=new Intent(this,NextClass.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); tabSpec.setContent(i1); tabHost.addTab(tabSpec);

像这样,您将 Intent 定义为选项卡。

于 2012-06-20T10:36:02.157 回答
0
 TabHost tabHost=getTabHost();
    TabHost.TabSpec tabSpec;
    Resources res=getResources();

    tabSpec=tabHost.newTabSpec("First");
    tabSpec.setIndicator("FirstTabName",res.getDrawable(R.drawable.image));
    Intent i1=new Intent(this,NextClass.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    tabSpec.setContent(i1);
    tabHost.addTab(tabSpec);

像这样,您将 Intent 定义为选项卡。因此,您的标签将保持不变,底部内容将是您的活动。

从列表中选择一个项目时,将其指向下一个类,其中您有一个不同的布局,只有两个选项卡。.

于 2012-06-20T09:43:09.393 回答