有没有办法删除使用
设置的视图setContentView(R.layout.set_map_center);
mapView = (MapView) findViewById(R.id.mapview);
如果我再次调用此视图,则会收到错误消息:
java.lang.IllegalStateException:你 只允许有一个 MapActivity中的MapView
答案 0 :(得分:1)
((ViewGroup)mapView.getParent()).removeView(mapView);
答案 1 :(得分:0)
试试这个.. 首先通过以下代码对您尝试在setContentView()中设置的视图进行充气;
layout = new LinearLayout(context);
layout.setVisibility(VISIBLE);
v = View.inflate(getContext(), R.layout.set_map_center, layout);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.NO_GRAVITY;
addView(layout, params);
v.setVisibility(VISIBLE);
layout.setVisibility(VISIBLE);
无论何时想要删除视图,您都可以简单地说layout.setVisibility(GONE) 如果您无法访问GONE,请说View.GONE
答案 2 :(得分:0)
我认为每个人都是对的,它对我来说就像是一个缺陷。我应该能够给视图充气并在其中使用地图,如果我回想起视图,那么就可以删除它或者再次查看它而不会出错。
最简单的解决方法是使用xml移除膨胀或setContentView,然后使用动态构建的地图,然后将其存储在内存中。
我删除了
// Show Map Settings Screen
setContentView(R.layout.set_map_center);
// Initiate the center point map
if (mapView == null) {
mapView = (MapView) findViewById(R.id.mapview);
}
并将其替换为:
if (mapView == null) {
// public MapView mapView = null; // Public defined Variable
mapView = new MapView(this, this.getString(R.string.APIMapKey));
}
setContentView(mapView);
这很好用,让我有机会打电话给地图。感谢您回复所有人。