我目前在一个Android项目中,我们的主视图是TabActivity,每个选项卡都是一个单独的Activity.一个是MapActivity,另外两个是普通活动.
首先请注意,我认为我们必须将每个选项卡作为单独的活动,因为在单独的活动中有太多代码只是让TabHost切换选项卡上的内容视图更改并将所有代码放在同一个类中.无论如何,回到问题.
其中一个选项卡包含一个按钮,按下该按钮时,TabActivity会切换到MapActivity并将地图设置为特定位置的动画.
在http://joshclemm.com/blog/?p=86上找到的教程显示了如果TabHost包含mapview和listview的方法.如果单击ListView中的项目,TabHost将切换到mapview并动画到该位置(这些坐标).这正是我按下单独活动中的按钮时需要做的事情.
MainView.java创建如下:
public class MainView extends TabActivity implements OnTabChangeListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); // Resource object to get Drawables
TabHost 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, MapGUI.class);
spec = tabHost.newTabSpec("map").setIndicator("Map",
res.getDrawable(R.drawable.ic_tab_menu_item))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, MissionView.class);
spec = tabHost.newTabSpec("mission").setIndicator("Mission",
res.getDrawable(R.drawable.ic_tab_menu_item))
.setContent(intent);
tabHost.addTab(spec);
intent = …Run Code Online (Sandbox Code Playgroud)