我尝试从上一个活动中的数据库中检索纬度和经度值,并使用意图将它们发送到此当前活动。我已将它们转换为double值并在此活动中将它们发送为double。从数据库中检索是成功的。但是,当我使用标记绘制这些坐标时,正在绘制getDoubleExtra()
的默认值,而不是实际坐标。
public class MapsMarkerActivity extends AppCompatActivity
implements OnMapReadyCallback {
String username11;
Double lat,lng;
GoogleMap mMap;
LatLng me;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps_marker);
Intent y=getIntent();
username11=y.getStringExtra("username");
lat=y.getDoubleExtra("lat",23.45);
lng=y.getDoubleExtra("'lng",75.22);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap=googleMap;
LatLng sydney = new LatLng(-33.852, 151.211);
googleMap.addMarker(new MarkerOptions().position(sydney)
.title("Marker in Sydney"));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
googleMap.clear();
me=new LatLng(lat,lng);
col(mMap);
}
public void col(GoogleMap mMap){
mMap.addMarker(new MarkerOptions().position(me).title("Location of "+username11));
mMap.moveCamera(CameraUpdateFactory.newLatLng(me));
}
}
标记指向23.45 lat和75.22,而不是从数据库中检索的值。
需要做些什么来纠正这个问题?
我调用地图活动的代码位于
之下 Intent u=new Intent(this,MapsMarkerActivity.class);
u.putExtra("lat",lat);
u.putExtra("lng",lng);
u.putExtra("username",username11);
startActivity(u);
解析如下所示,我使用volley来获取一个响应字符串。
lat=Double.parseDouble(response);