我正在尝试使用此选项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>
答案 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)”。