Android 如何在tabhost中放置其他活动?
我是android的新手,有人能帮我解决关于TabHost的问题吗? 我有一个Tab主机和3个类,我想把这个活动或类放到或调用到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
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扩展了活动,这个类的功能是杀死所有正在运行的应用程序。可以叫这个班吗?请帮帮我谢谢你的帮助。