【发布时间】:2017-12-13 07:33:25
【问题描述】:
我有一个地点列表。当用户点击每个项目时,另一个Activity 会显示放置在地图活动上的项目。我在单击项目时发送带有putExtra 的 LatLng。
一切正常,但我的问题是当用户从地图活动中回退时,地图再次显示,某种刷新(要退出地图活动,用户必须按两次!)。
在后按 kill 、finish() 或其他杀戮页面将不起作用!
第一个活动
lv = getListView();
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
Intent intent = new Intent(getApplicationContext(),BimarestanMAP.class);
switch(position) {
case 0 :
intent.putExtra("name", str1);
intent.putExtra("lat", bim1a);
intent.putExtra("lan", bim1l);
startActivity(intent);
break;
}
地图活动:
initilizeMap();
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap.setMyLocationEnabled(true);
googleMap.getUiSettings().setZoomControlsEnabled(true);
googleMap.getUiSettings().setCompassEnabled(true);
googleMap.getUiSettings().setRotateGesturesEnabled(true);
googleMap.getUiSettings().setZoomGesturesEnabled(true);
Bundle bundle = getIntent().getExtras();
str1 = bundle.getString("name");
final double lat = bundle.getDouble("lat");
final double lan = bundle.getDouble("lan");
Marker marker = googleMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lan))
.title(str1)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)));
marker.showInfoWindow();
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lan), 15));
@Override
protected void onResume () {
super.onResume();
initilizeMap();
}
private void initilizeMap() {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(), "sorry no map!", Toast.LENGTH_SHORT).show();
}
}
}
}
【问题讨论】:
-
为什么要调用 initilizeMap() 两次?