如何在已经有“扩展”的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