调用另一个不同活动的活动中的选项卡
问题描述:
我在活动中有2个选项卡,并且我想添加一个新选项卡并添加一个Google地图,所以我需要创建一个扩展了mapactivity的活动。到现在为止还挺好。 但我不知道如何选择标签才能显示地图。调用另一个不同活动的活动中的选项卡
这是我的代码
TabHost tabhost =(TabHost)findViewById(R.id.tabHost); tabhost.setup();
TabSpec spec1 = tabhost.newTabSpec("tab1");
spec1.setContent(R.id.tab1);
TabSpec spec2 = tabhost.newTabSpec("tab2");
spec2.setContent(R.id.tab2);
TabSpec spec3 = tabhost.newTabSpec("map");
spec3.setContent(R.id.tab3);
tabhost.addTab(spec1);
tabhost.addTab(spec2);
tabhost.addTab(spec3);
标签1和片2正在作为码是所有在相同的活性。
有帮助吗?
答
tabSpec=tabHost.newTabSpec("tab1");
tabSpec.setIndicator("CLASS A");
Intent i=new Intent(this,ClassA.class);
tabSpec.setContent(i);
tabHost.addTab(tabSpec);
tabSpec=tabHost.newTabSpec("tab2");
tabSpec.setIndicator("CLASS B");
Intent i=new Intent(this,ClassB.class);
tabSpec.setContent(i);
tabHost.addTab(tabSpec);
答
您应该Fragments
而不是Activities
工作,以实现这一目标。 对于蜂窝前设备,有一个兼容性API可以使用Fragments
。
随着Fragments
你可以使用FragmentTransation
切换到谷歌地图在相同的Tab
。
答
我听说过MapView和MapFragment,但我不确定MapActivity的意思 - 可能是有人给你的自定义活动。但无论如何,我建议你创建一个MapView或MapFragment,并在用户点击应用程序中的Map-Tab时返回。您不必触发其他活动即可显示地图屏幕。使用spec3.setContent(MapViewInstance)
或spec3.setContent(MapFragmentInstance)
来实现你所需要的。 HTH。
我正在使用蜂窝。那是问题吗?你能给我一个示例代码吗?我是否必须更改所有的代码,因为它已经接近准备好了。我只需要添加此标签与谷歌地图。 – Adnama 2012-01-05 10:28:05
如果您使用的是蜂巢,您可以使用碎片。 我认为如果你正在开发蜂窝或更高版本,你应该使用片段。 [这里](http://developer.android.com/guide/topics/fundamentals/fragments.html)是开始使用片段的一些信息。 – 2012-01-05 11:02:27