0

我对android编程很陌生。我正在使用 android 4.2,我有一个主要活动,它由一个 actionbar 中的 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);

    }
}

但是每当我点击“地图”时,我都会丢失标签。似乎这会自行启动一项活动并停止第一个活动。我想要的是在名为“地图”的选项卡下拥有地图。

你能帮我提供任何提示吗?

4

2 回答 2

0

在 Android 中,intent 用于与其他活动进行通信,并且 startActivitiy 会在您的活动之外启动一个新活动。有关意图的教程请看这里:http ://www.vogella.com/articles/AndroidIntent/

相反,您要做的是将用于显示地图的任何视图放在选项卡布局下,然后根本不使用意图。

但总的来说,您需要在继续之前充分了解活动是什么,因为它是 Android 的基本概念:这里有一个链接:http: //developer.android.com/guide/components/fundamentals.html

祝你好运!

于 2013-07-05T01:39:19.603 回答
0

这里有两种方法你正在混合,你不能真正混合这两种方法:

1)您可以使用片段,这似乎是您在操作栏上使用的。但是您需要在片段中实现地图,请参阅http://developer.android.com/reference/com/google/android/gms/maps/SupportMapFragment.htmlhttp://developer.android.com/guide/组件/片段.html

2) 另一种方式是使用 TabActivity 为每个选项卡使用单独的活动的旧方式,您可以在其中创建新的活动,就像您开始使用 mapActivity 一样,但这种方式在 Honeycomb 中已被弃用。

于 2013-07-05T02:07:54.983 回答