菜单未显示在地图活动

时间:2015-08-30 16:43:23

标签: android google-maps android-menu

我正在尝试使用此选项None, Normal, Terrain, Satellite, Hybrid(Google地图)在地图活动中创建一个菜单,以便用户可以选择所需的地图类型,但菜单未在地图活动中显示。

我尝试在super.onCreateOptionsMenu(menu);之前将onCreateOptionsMenu添加到inflater,但没有成功。

我该如何解决?

地图活动:

public class Map extends FragmentActivity实现OnMapReadyCallback,ConnectionCallbacks,OnConnectionFailedListener {

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.map_menu, menu);
    System.out.println("ABC MAP onCreateOptionsMenu was invoked.");

    return true;
}

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.mapTypeNone:
            map.setMapType(GoogleMap.MAP_TYPE_NONE);                
            break;

        case R.id.mapTypeNormal:
            map.setMapType(GoogleMap.MAP_TYPE_NORMAL);              
            break;

        case R.id.mapTypeSatellite:
            map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);               
            break;

        case R.id.mapTypeTerrain:
            map.setMapType(GoogleMap.MAP_TYPE_TERRAIN);             
            break;
        case R.id.mapTypeHybrid:
            map.setMapType(GoogleMap.MAP_TYPE_HYBRID);              
            break;

        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }

}

map_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/mapTypeNormal"
        android:title="Normal"/>
    <item
        android:id="@+id/mapTypeSatellite"
        android:title="Satellitte"/>
    <item
        android:id="@+id/mapTypeTerrain"
        android:title="Terrain"/>
    <item
        android:id="@+id/mapTypeHybrid"
        android:title="Hybrid"/>
    <item
        android:id="@+id/mapTypeNone"
        android:title="None"/>
</menu>

2 个答案:

答案 0 :(得分:3)

检查MapActivity.java正在扩展的内容。

如果是extends FragmentActivity,则将其更改为extends AppCompatActivity

并且在你的风格中确保这个..

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        ...
</style>

在Build.gradle中添加它(模块:app) 在依赖项中

dependencies {
    ..
    compile 'com.android.support:appcompat-v7:22.2.0'

}

答案 1 :(得分:0)

扩展“AppCompatActivity”并在活动onCreate中添加“setSupportActionBar(toolbar)”。