Search code examples
androidgoogle-mapsaction-menu

How to display different Google Map view?


I am using ActionBar Menu to give option for google map display. I want to display different maps. In my code I am not able to switch for different map. Help me to solve the code mistake.

 @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);
    }

}

Solution

  • Your code is perfect but You just missed break in every case.

    @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);
        }