我已经将onNewIntent(intent)添加到我的活动中,所以当它被调用时它应该放大我地图上的特定位置然后调用invalidateOptionsMenu(),以便可以调用onCreateOptionsMenu()并更新我的微调器操作栏,其中包含新位置的名称。问题是在我向onNewIntent()添加invalidateOptionsMenu()之后,animateCamera总是显示我添加到微调器的第一个位置。例如,我有三个地点(伦敦,巴黎,米兰)和我添加另一个(纽约),它应该放大到纽约,但它总是缩放到伦敦。 这是我的代码。
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
final String name = intent.getStringExtra("name");
ArrayList<String> loc = helper.getLocation(name); //here i get the coordinates for the location from database
String lat = loc.get(0);
String lng = loc.get(1);
double lat1 = Double.parseDouble(lat);
double lng1 = Double.parseDouble(lng);
LatLng tochka = new LatLng(lat1, lng1);
CameraUpdate camera = CameraUpdateFactory.newLatLngZoom(tochka, 17);
map.animateCamera(camera);
map.addMarker(new MarkerOptions().position(tochka).title(name));
invalidateOptionsMenu();
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.spinner, menu);
MenuItem item = menu.findItem(R.id.spinner);
spinner = (Spinner) MenuItemCompat.getActionView(item);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row, R.id.weekofday, Locations);
adapter.setDropDownViewResource(R.layout.row);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
return true;
}
感谢。