2014-02-16 3050 views
0

我开发了一个android应用程序,包括带有标签的滑动视图。 所有页面都有自己的布局,所有这一切都很好:D。如何在已经有“扩展”的Activity中添加MapView?

但我想添加到该视图中的MapView类(从谷歌API)中的一个,所以我需要延长我的MainActivity(唯一一个我有)至MapActivity,但我不能(没有什么错在这里):

public class MainActivity extends ActionBarActivity implements ActionBar.TabListener{ 

那么有没有办法从MainActivity管理我的MapView?

感谢很多:)

(对不起,我英文不好语法)

+0

Maps V2中没有'MapActivity'。 – CommonsWare

回答

0

答案是否定的。如果不扩展MapActivity,则无法使用MapView。正如gulbrandr指出的,有类似的问题here,这可能对任何尝试与我相同的事情的人都有用。

+0

所以我可以使用MapFragment?非常感谢,我现在测试:) –

+1

'MapActivity'适用于Maps V1,它已被弃用约16个月,不能再用于新开发。当前的地图API Maps V2根本没有“MapActivity”,更不用说要求使用一个。 – CommonsWare

3

通常当你遇到像这样的问题时,你需要看封装而不是扩展。你不能使用MapView作为成员变量吗?

如果您查看MapView API,它表示我们必须实现MapView的Android生命周期才能正常运行。所以,如果你使用的MapView作为成员变量,你需要重写你的主要活动如下方法来调用的MapView的匹配方法:

onCreate(Bundle) 
onResume() 
onPause() 
onDestroy() 
onSaveInstanceState(Bundle) 
onLowMemory() 

举个例子,你的活动将类似于以下:

public final class MainActivity extends Activity { 

    private MapView mMapView; 

    @Override 
    public final void onCreate(final Bundle pSavedInstanceState) { 
      super(pSavedInstanceState); 
      this.mMapView = new MapView(this); 
      /* Now delegate the event to the MapView. */ 
      this.mMapView.onCreate(pSavedInstanceState); 
    } 

    @Override 
    public final void onResume() { 
      super.onResume(); 
      this.getMapView().onResume(); 
    } 

    @Override 
    public final void onPause() { 
      super.onPause(); 
      this.getMapView().onPause(); 
    } 

    @Override 
    public final void onDestroy() { 
      super.onDestroy(); 
      this.getMapView().onDestroy(); 
    } 

    @Override 
    public final void onSaveInstanceState(final Bundle pSavedInstanceState) { 
      super.onSaveInstanceState(pSavedInstanceState); 
      this.getMapView().onSaveInstanceState(pSavedInstanceState); 
    } 

    @Override 
    public final void onLowMemory() { 
      super.onLowMemory(); 
      this.getMapView().onLowMemory(); 
    } 

    private final MapView getMapView() { 
      return this.mMapView; 
    } 

} 
+0

感谢您的回答,但我认为这对我来说有点困难,我不明白我必须做什么... :( –

+0

我已经充实了代码,希望这会有所帮助。 –

+0

伟大的工作,但只在我的第一个看法(在第一页),但不是在我的第二页(崩溃)与相同的布局:( –

相关问题