菜单不会出现在地图上的活动 [英] The menu does not appear in the map activity

查看:156
本文介绍了菜单不会出现在地图上的活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个菜单,此选项无,正常,地形,卫星,混合(谷歌地图)地图中的活动,以使用户能够选择他们所需的地图类型,但在不菜单被显示在地图活性。

我已尝试添加 super.onCreateOptionsMenu(菜单); onCreateOptionsMenu 吹气但没有成功。

我怎样才能解决这个问题?

地图活动:

公共类地图扩展FragmentActivity实现OnMa preadyCallback,ConnectionCallbacks,OnConnectionFailedListener {

  @覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
    MenuInflater吹气= getMenuInflater();
    inflater.inflate(R.menu.map_menu,菜单);
    的System.out.println(ABC MAP onCreateOptionsMenu被调用。);    返回true;
}@覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        开关(item.getItemId()){
        案例R.id.mapTypeNone:
            map.setMapType(GoogleMap.MAP_TYPE_NONE);
            打破;        案例R.id.mapTypeNormal:
            map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            打破;        案例R.id.mapTypeSatellite:
            map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
            打破;        案例R.id.mapTypeTerrain:
            map.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
            打破;
        案例R.id.mapTypeHybrid:
            map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
            打破;        默认:
            打破;
        }
        返回super.onOptionsItemSelected(项目);
    }

}

map_menu.xml

 <?XML版本=1.0编码=UTF-8&GT?;
<菜单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android>    <项目
        机器人:ID =@ + ID / mapTypeNormal
        机器人:标题=正常/>
    <项目
        机器人:ID =@ + ID / mapTypeSatellite
        机器人:标题=Satellitte/>
    <项目
        机器人:ID =@ + ID / mapTypeTerrain
        机器人:标题=地形/>
    <项目
        机器人:ID =@ + ID / mapTypeHybrid
        机器人:标题=混合/>
    <项目
        机器人:ID =@ + ID / mapTypeNone
        机器人:标题=无/>
&所述; /菜单>


解决方案

检查你的MapActivity.java正在扩大。

如果是延伸FragmentActivity 然后将其更改为延伸AppCompatActivity

和你的风格确保这..

 <样式名称=AppTheme父=Theme.AppCompat.Light.DarkActionBar>
        ...
< /风格>

添加它在的build.gradle(模块:应用程序)
依赖内部

  {相关性
    ..
    编译com.android.support:appcompat-v7:22.2.0}

I am trying to create a menu with this option None, Normal, Terrain, Satellite, Hybrid (Google map) in the map activity to enable the users to select their desired map type but the menu in not being shown in the Map activity.

I have tried to add super.onCreateOptionsMenu(menu); to the onCreateOptionsMenu before inflater but without success.

How can I fix it?

Map 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>

解决方案

Check what your MapActivity.java is extending.

If it is extends FragmentActivity then change it to extends AppCompatActivity.

and in your styles make sure this ..

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

Add it in the Build.gradle (Module:app) inside the dependencies

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

}

这篇关于菜单不会出现在地图上的活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆