菜单未出现在地图中 activity
The menu does not appear in the map activity
我正在尝试在地图 activity 中使用此选项 None, Normal, Terrain, Satellite, Hybrid
(Google 地图)创建一个菜单,以使用户能够 select 他们想要的地图类型但菜单未显示在地图中 activity。
我尝试将 super.onCreateOptionsMenu(menu);
添加到 inflater
之前的 onCreateOptionsMenu
但没有成功。
我该如何解决?
地图activity:
public class Map extends FragmentActivity implements 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>
检查您的 MapActivity.java 正在扩展什么。
如果是extends FragmentActivity
则改为extends AppCompatActivity
。
在你的风格中确保这一点..
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
</style>
将其添加到 Build.gradle(模块:应用程序)
在依赖关系中
dependencies {
..
compile 'com.android.support:appcompat-v7:22.2.0'
}
扩展 "AppCompatActivity" 并在 activity onCreate 中添加 "setSupportActionBar(toolbar)"。
我正在尝试在地图 activity 中使用此选项 None, Normal, Terrain, Satellite, Hybrid
(Google 地图)创建一个菜单,以使用户能够 select 他们想要的地图类型但菜单未显示在地图中 activity。
我尝试将 super.onCreateOptionsMenu(menu);
添加到 inflater
之前的 onCreateOptionsMenu
但没有成功。
我该如何解决?
地图activity:
public class Map extends FragmentActivity implements 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>
检查您的 MapActivity.java 正在扩展什么。
如果是extends FragmentActivity
则改为extends AppCompatActivity
。
在你的风格中确保这一点..
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
</style>
将其添加到 Build.gradle(模块:应用程序) 在依赖关系中
dependencies {
..
compile 'com.android.support:appcompat-v7:22.2.0'
}
扩展 "AppCompatActivity" 并在 activity onCreate 中添加 "setSupportActionBar(toolbar)"。