2015-08-30 42 views
1

我正嘗試在地圖活動中使用此選項創建一個帶有此選項的菜單None, Normal, Terrain, Satellite, Hybrid(Google地圖),以便用戶可以選擇其所需的地圖類型,但菜單未顯示在地圖活動。該菜單沒有出現在地圖活動中

我曾嘗試在inflater之前將super.onCreateOptionsMenu(menu);添加到onCreateOptionsMenu,但沒有成功。

我該如何解決?

地圖活動:

公共類地圖擴展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> 

回答

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' 

} 
+0

是的,它擴展了FragmentActivity,我試圖替換它,但我得到'AppCompatActivity無法解析爲類型'。 – TheLight

+0

沒問題..在我的答案編輯。 –

+0

我在哪裏可以找到