我正在使用ActionBar菜单为谷歌地图显示提供选项。我想显示不同的地图。在我的代码中,我无法切换到不同的地图。帮我解决代码错误。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.activity_maps, menu);
return super.onCreateOptionsMenu(menu);
}
//ActionBar Menu icon listerner like clicking options
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.smap:
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
Toast.makeText(getApplicationContext(), "Satellite view", Toast.LENGTH_SHORT).show();
case R.id.hmap:
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
case R.id.tmap:
mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
case R.id.nmap:
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
default:
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:3)
您在每个break
之后忘记了case
;)
这就是选择最后一个的原因
答案 1 :(得分:2)
您的代码非常完美,但在每种情况下您都错过了break
。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.smap:
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
Toast.makeText(getApplicationContext(), "Satellite view", Toast.LENGTH_SHORT).show();
break;
case R.id.hmap:
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
break;
case R.id.tmap:
mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
break;
case R.id.nmap:
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
break;
default:
break;
return super.onOptionsItemSelected(item);
}