如何显示不同的Google Map视图?

时间:2015-09-07 12:44:37

标签: android google-maps action-menu

我正在使用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);
    }

}

2 个答案:

答案 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);
    }