Android 如何在tabhost中放置其他活动?

Android 如何在tabhost中放置其他活动?,android,Android,我是android的新手,有人能帮我解决关于TabHost的问题吗? 我有一个Tab主机和3个类,我想把这个活动或类放到或调用到TabHost。我要做什么。以下是我的选项卡主机中的代码: public class Tab extends Activity { TabHost th; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst

我是android的新手,有人能帮我解决关于TabHost的问题吗? 我有一个Tab主机和3个类,我想把这个活动或类放到或调用到TabHost。我要做什么。以下是我的选项卡主机中的代码:

public class Tab extends Activity  {

    TabHost th;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab);

        Resources res = getResources();    

        th = (TabHost)findViewById(R.id.tabhost);    
        th.setup();
        TabSpec specs = th.newTabSpec("tag1");
        specs.setContent(R.id.tab1);
        specs.setIndicator("Settings", res.getDrawable(R.drawable.ic_tab_setting));
        th.addTab(specs);

        specs = th.newTabSpec("tag2");
        specs.setContent(R.id.tab2);
        specs.setIndicator("Battery Information",res.getDrawable(R.drawable.ic_tab_batteryinfo));
        th.addTab(specs);

        specs = th.newTabSpec("tag3");
        specs.setContent(R.id.tab3);
        specs.setIndicator("Help", res.getDrawable(R.drawable.ic_tab_help));
        th.addTab(specs);
    }
}

我将在哪里调用我创建的这三个类?

当您使用选项卡时,您需要扩展
TabActivity
,而不是
Activity
。而且你也不需要通过id找到它

因此,您应该更改代码,如下所示

public class Tab extends TabActivity{
    ...
    TabHost tabHost;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        ...
        setContentView(R.layout.tab);

        ...
        Resources res = getResources(); // Resource object to get Drawables   
        tabHost = getTabHost();  // The activity TabHost  
        TabHost.TabSpec spec;  // Resusable TabSpec for each tab    
        Intent intent;  // Reusable Intent for each tab   

        intent = new Intent().setClass(this, Activity1.class);  
        spec = tabHost.newTabSpec("Tab One").setIndicator("Tab One",res.getDrawable(R.drawable.first_tab)).setContent(intent); 
        tabHost.addTab(spec);

        intent = new Intent().setClass(this, Activity2.class);  
        spec = tabHost.newTabSpec("Tab Two").setIndicator("Tab Two",res.getDrawable(R.drawable.second_tab)).setContent(intent); 
        tabHost.addTab(spec); 

        intent = new Intent().setClass(this, Activity3.class);  
        spec = tabHost.newTabSpec("Tab Three").setIndicator("Tab Three",res.getDrawable(R.drawable.third_tab)).setContent(intent); 
        tabHost.addTab(spec); 

        tabHost.setCurrentTab(0); // set first tab selected when activity is first loaded
        ... 
    }
}

不要忘记将所有3个活动也添加到清单文件中,即Activity1.class、Activity2.class和Activity3.class。

您可以将意图创建为
Intent Intent=new Intent(此,otherActivity.class)并将此意图设置为
specs.setContent(意图)是使用选项卡的一个示例。

您可以通过使用ActivityGroup而不是Activity来完成此操作。检查下面的链接,你会有一个想法


我希望它能对您有所帮助。

当您使用
活动
时,您可以使用
活动
中的选项卡。您只需要通过
findViewById()
查找
TabHost
,然后调用方法
TabHost.setup()是的。我知道。但我正在解释我给出示例的方式。为什么在我的tabhost中调用TaskKiller.java时会出错?它们在同一个包裹里。以下是错误:E/AndroidRuntime(6462):java.lang.RuntimeException:无法启动活动请发布您的日志,并提供给出错误的指定号码的行。我执行了您的所有建议,但仍然收到一个错误。它总是提示我强制关闭应用程序。我不知道该怎么办。我为这件事感到头痛我所说的TaskKiller.java扩展了活动,这个类的功能是杀死所有正在运行的应用程序。可以叫这个班吗?请帮帮我谢谢你的帮助。