我已将 onNewIntent(intent) 添加到我的活动中,因此当它被调用时,它应该放大我地图上的特定位置,然后调用 invalidateOptionsMenu(),以便可以调用 onCreateOptionsMenu() 并使用更新我的操作栏中的微调器新位置的名称。问题是在我将 invalidateOptionsMenu() 添加到 onNewIntent() 之后,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;
}
谢谢。