如何将此功能调用到OnClick事件?

时间:2015-07-31 13:12:12

标签: android

如何将此功能调用到OnClick事件? 想通过使用onclick事件或使用按钮onclick事件调用onCreateOptionMenu,所以请帮助我解决这个问题?

    public boolean onCreateOptionsMenu(Menu menu) {
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.option_menu, menu);

      switch (mWhichRouteProvider){
     case OSRM: 
        menu.findItem(R.id.menu_route_osrm).setChecked(true);
        break;
    case GRAPHHOPPER_FASTEST:
        menu.findItem(R.id.menu_route_graphhopper_fastest).setChecked(true);
        break;
    case GRAPHHOPPER_BICYCLE:
        menu.findItem(R.id.menu_route_graphhopper_bicycle).setChecked(true);
        break;
    case GRAPHHOPPER_PEDESTRIAN:
                       menu.findItem(R.id.menu_route_graphhopper_pedestrian).setChecked(true);
        break;
    case GOOGLE_FASTEST:
        menu.findItem(R.id.menu_route_google).setChecked(true);
        break;
    }

    if (map.getTileProvider().getTileSource() == TileSourceFactory.MAPNIK)
        menu.findItem(R.id.menu_tile_mapnik).setChecked(true);
    else if (map.getTileProvider().getTileSource() == TileSourceFactory.MAPQUESTOSM)
        menu.findItem(R.id.menu_tile_mapquest_osm).setChecked(true);
    else if (map.getTileProvider().getTileSource() ==     MAPBOXSATELLITELABELLED)
        menu.findItem(R.id.menu_tile_mapbox_satellite).setChecked(true);

    return true;
}

4 个答案:

答案 0 :(得分:2)

您可以使用invalidateOptionsMenu。从文档

  

声明选项菜单已更改,因此应重新创建。该   onCreateOptionsMenu(Menu)方法将在下次需要时调用   待显示。

该方法可从api level 11获得。

答案 1 :(得分:1)

在onClick事件中使用以下行

 openOptionsMenu();

答案 2 :(得分:0)

只需获取onCreateOptionsMenu中的所有代码并将其放入另一个函数中(doTheThing())

然后你有

public boolean onCreateOptionsMenu(Menu menu) {
    doTheThing(menu);
return true
}

然后调用onClickListener中的那个东西

答案 3 :(得分:0)

为什么不使用:

div

对我而言,这似乎是一种更好的方式