如何在已经有“扩展”的Activity中添加MapView?

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

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

public class MainActivity extends ActionBarActivity implements ActionBar.TabListener{ 

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

感谢很多:)

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

回答:

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

回答:

通常当你遇到像这样的问题时,你需要看封装而不是扩展。你不能使用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;

}

}

以上是 如何在已经有“扩展”的Activity中添加MapView? 的全部内容, 来源链接: utcz.com/qa/267211.html

回到顶部