我对android编程很新。我使用的是android 4.2,我有一个主要的活动,它包含一个actiobBar中的3个标签。 如果用户点击某个标签,我想启动另一个活动(mapActivity)。 所以如果用户点击标签,我会创建一个意图。 这是代码:
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
// When the given tab is selected, switch to the corresponding page in
// the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
if(tab.getText().equals("Map")){
Intent intent = new Intent().setClass(this, MapDisplayActivity.class);
this.setIntent(intent);
startActivity(intent);
}
}
但每当我点击“地图”时,我都会丢失标签。似乎这会自行启动一个活动并停止第一个活动。我喜欢的是在名为“地图”的标签下设置地图。
你能帮我提一些提示吗?
答案 0 :(得分:0)
在Android中,一个intent用于与其他活动进行通信,startActivitiy会在你的外面启动一个新的。有关意图的教程,请查看此处:http://www.vogella.com/articles/AndroidIntent/
相反,您想要做的是放置您用于在标签布局下显示地图的任何视图,然后根本不使用意图。
但总的来说,您需要在继续之前充分了解活动是什么,因为它是Android的基本概念:这里有一个链接:http://developer.android.com/guide/components/fundamentals.html
古德勒克!
答案 1 :(得分:0)
这里有两种方法,你混合,你不能真正混合两者:
1)你可以使用你在动作栏中使用的片段。但是,您需要在片段中实现地图,请参阅http://developer.android.com/reference/com/google/android/gms/maps/SupportMapFragment.html 和 http://developer.android.com/guide/components/fragments.html
2)另一种方式是使用TabActivity为每个选项卡使用单独活动的旧方法,您可以在其中创建新的活动,就像您开始使用mapActivity一样,但这种方式从Honeycomb开始不推荐使用。